IDが次のように構成された休止状態のエンティティがあります
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
新しい要素の作成は、最初の実行では正常に機能します。しかし、アプリケーションを再起動してレコードを取得すると、次にこのエンティティを永続化しようとすると、休止状態は、アプリケーションが再起動されなかったときに生成された同じ ID を使用しようとします。
以下のエラーが表示されます。トレース オプションを使用して実行すると、ID が再利用されていることがわかりました。
*Hibernate: org_myEntity (entitiyJID, entitityName, id) 値 (?, ?, ?) に挿入します org.hibernate.util.JDBCExceptionReporter
SQL エラー: 20000、SQLState: 23505 org.hibernate.util.JDBCExceptionReporter 'TABLE_NAME' で定義された 'SQL120725164357680' で識別される一意または主キー制約または一意のインデックスで重複キー値が発生しました。org.hibernate.event.def.AbstractFlushingEventListener
データベースの状態をセッション org.hibernate.exception.ConstraintViolationException と同期できませんでした: できませんでした*
ちなみに、私は hibernate 3.3.2.GA、javax.persistance 2.0.0、および Derby 10.5.1 データベースを使用しています。
私の世代で何が問題なのか、どうすれば修正できるのか、誰か知っている人はいますか?