我的PostgreSQL表的id爲bigserial
,這意味着它們是在插入行時生成的(因此,在INSERT
語句中沒有提供id列的值)。我無法在我的XML映射文件中爲<generator class="...">
屬性找到適當的值。適合postgres serial/bigserial列的Hibernate ID生成器?
下面的代碼是我發現的最接近Postgres的最接近的代碼,但它在插入(並在插入時明確包含id字段的值)之前仍然對該序列執行SELECT nextval(...)
。我只是希望Hibernate根本不包含id字段值,這樣Postgres就可以完成自己生成值的工作。
<id name="id" column="id" type="java.lang.Long">
<generator class="sequence">
<param name="sequence">my_sequence_name</param>
</generator>
</id>
對於新版本(JPA):http://stackoverflow.com/questions/4979746/mapping-postgresql-serial-type-with-hibernate-annotations – 2012-07-31 19:04:24