[Seasar-user:16705] [S2JDBC-Gen]PostgreSQLにおいてシーケンスの現在値を維持する方法について

Takeshi Zeniya [E-MAIL ADDRESS DELETED]
2009年 1月 21日 (水) 22:38:02 JST


はじめまして、銭谷武と申します。

以下の環境で、S2JDBC-Gen を使用させて頂いております。
S2Container 2.4.33
S2Tiger 2.4.33
S2JDBC-Gen 0.9.4
PostgreSQL8.3

主キーとなるプロパティに
@GeneratedValue
をつけてマイグレーションしたところ、主キーの型が、
serial 型になるのですが、その際生成されるシーケンスオブジェクト
'テーブル名_主キー名_seq'の現在値が 1 に戻ってしまいます。

以下のようにシーケンスを

@Id
@GeneratedValue
(strategy = GenerationType.SEQUENCE, generator = "emp_no_gen")
@SequenceGenerator(name = "emp_no_gen", sequenceName = "emp_no_seq",
initialValue = 1, allocationSize = 1)
@Column(name = "emp_no")
private Integer empNo;

を生成するようにしたらシーケンスの現在値は維持されるようになったのですが、

@Column(name = "emp_no", columnDefinition = "default nextval('emp_no_seq')")

とデフォルト値にシーケンスを使おうとしたら
org.postgresql.util.PSQLException:
ERROR: relation "emp_no_seq" does not exist
というエラーがマイグレーション時に発生します。
SQL ファイルで挿入処理を行う際に主キーにいれる値はデフォルト値に
任せたいのですが、どうすれば良いでしょうか。

-- 
Takeshi Zeniya
[E-MAIL ADDRESS DELETED]



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