私のPostgreSQLテーブルにはタイプのIDがありbigserial
ます。つまり、行が挿入されたときに生成されます(したがって、id列の値はINSERT
ステートメントで指定されません)。<generator class="...">
XMLマッピングファイルで属性の適切な値を見つけるのに問題があります。
以下のコードは私が見つけた最も近いもので、Postgresに最も近いようですが、SELECT nextval(...)
挿入する前にシーケンスに対して実行されています(そして、挿入にidフィールドの値を明示的に含めます)。Hibernateにidフィールド値をまったく含めないようにし、Postgresが値自体を生成できるようにします。
<id name="id" column="id" type="java.lang.Long">
<generator class="sequence">
<param name="sequence">my_sequence_name</param>
</generator>
</id>