[Seasar-user:1487] S2Dao PostgreSQLでidentity IDアノテーション

otsuka otsuka
2005年 2月 14日 (月) 18:52:49 JST


大塚です。

S2Dao+PostgreSQLの環境だと、今のところIDの自動生成で
"identity"は対応してないと思いますが、テーブル生成時に
IDカラムにserial型を指定した場合は「テーブル名_カラム名_seq」と
いうsequenceが作られます。(Postgres 7.xの場合。8.0も一緒?)

で、select currval(シーケンス名); でテーブル更新時に使用された
直近のシーケンスの値を返します。
http://www.postgresql.jp/document/pg74doc/html/functions-sequence.html

これを利用すればPostgresを"identity"に対応させられるんじゃ
ないかと思いソースをいじってみました。あんまりスマート
じゃないですが…。(添付のパッチ。テストケースはコンパイル
エラーのままです。)
一応これで、Postgresで"identity"時のID取得には成功しました。

まぁ、"sequence, sequenceName=シーケンス名"を使った方が
いいと思うんですが、ご参考までに。
-------------- next part --------------
文字コード指定の無い添付文書を取り除きました...
名前: s2dao-1.0.19-pgsql-patch.txt
URL:  http://lists.sourceforge.jp/mailman/archives/seasar-user/attachments/20050214/4d94711b/s2dao-1.0.19-pgsql-patch.txt



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