[Seasar-user:4087] [S2DAO]主キーの自動生成

Isao Yamada [E-MAIL ADDRESS DELETED]
2006年 7月 15日 (土) 21:29:41 JST


山田です。

S2DAOのIDの自動生成で確認したい点があります。

稼働環境は、
S2DAO:1.0.34
DBMS:Oracle 9i
です。

データベースでは主キーのカラムを  USER_PK NUMBER(10) としています。
対するDTOでは  long userPk としています。

この主キーをシーケンスで管理する為に、
    public static final String userPk_ID = "sequence, sequenceName=シーケン
ス名";
しています。

この状態でinsertすると主キーの部分user_pk(Dto側ではuserPk)の
カラムが生成されないです。

カラムアノテーションの
    public static final String userPk_COLUMN = "USER_PK";
をつけると正常に動作します。(user_pkに対するSQLがログで確認できます。)

■1
 ドキュメントでは読み取れなかったのですが、これは仕様でしょうか。
 (ドキュメントではカラムアノテーションは必要ないように思えます。)

また、
カラムアノテーションをつけた状態でDtoをプリミティブ型を
オブジェクト型(Integer, Long)に変えると、この項目のSQLが生成されなくなりま
した。

■2
 アンダーバーがある項目ではこのような動作になるのでしょうか。
 (これもドキュメントではできそうに思えます。)

現在携わっているシステムでは問題にはなりませんが、
できれば、カラムアノテーションはなくしたいですし(規約には沿っていると思って
います。)
主キーのシーケンスが0ではなくnullで扱いたいと思っていますので質問させて頂き
ました。

宜しくお願い致します。




Seasar-user メーリングリストの案内