tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

情報収集はどこからしたっていいじゃない

Seasarの技術情報を2chで求めるのはやめなさい - yvsu pron. yas


どこで質問するかなんて本人の好きにさせなよ、なんて思うわけですが。


試しに検索してみて思ったのですが、そもそもPostgreSQLのbytea(バイナリデータ型らしい)に対応しているかなんていう(たぶん)初歩的な疑問に対して、Googleでの検索やThe Seasar Project上で情報が出てこないということは問題なのでは。


また、テストケースのソース嫁でもいいんだけど、せめてそのソースがどこにあるのか明示してほしい、というのが1ユーザとしての声です。


というわけで、そのテストケースがどこにあるか調べてみました。

テーブル作成SQL
CREATE TABLE LARGE_OBJECT(ID NUMERIC(8) NOT NULL PRIMARY KEY, NAME VARCHAR(10), LARGE_NAME TEXT, BYTES BYTEA, LARGE_BYTES OID, DTO BYTEA, LARGE_DTO OID);

https://www.seasar.org/svn/s2container/trunk/s2jdbc-it/sql/create_postgre.sql

テストケース
    /**
     * 
     * @throws Exception
     */
    public void testLargeObject() throws Exception {
        byte[] bytes = new byte[10000];
        for (int i = 0; i < bytes.length; i++) {
            bytes[i] = (byte) 'b';
        }
        char[] chars = new char[10000];
        for (int i = 0; i < chars.length; i++) {
            chars[i] = 'c';
        }
        LargeObject.MyDto dto = new LargeObject.MyDto("bar");
        LargeObject lob = new LargeObject();
        lob.id = 1;
        lob.name = "hoge";
        lob.largeName = new String(chars);
        lob.bytes = new byte[] { 'f', 'o', 'o' };
        lob.largeBytes = bytes;
        lob.dto = dto;
        lob.largeDto = dto;
        jdbcManager.insert(lob).execute();
        lob = jdbcManager.from(LargeObject.class).id(1).getSingleResult();
        assertEquals("hoge", lob.name);
        assertEquals(new String(chars), lob.largeName);
        ArrayAssert.assertEquals(new byte[] { 'f', 'o', 'o' }, lob.bytes);
        ArrayAssert.assertEquals(bytes, lob.largeBytes);
        assertEquals(dto, lob.dto);
        assertEquals(dto, lob.largeDto);
    }

https://www.seasar.org/svn/s2container/trunk/s2jdbc-it/src/test/java/org/seasar/extension/jdbc/it/auto/AutoInsertTest.java