Hibernate で IDをバイパスすることは可能ですか@GeneratedValue
。ほとんどの場合、ID を を使用して設定したいのですGeneratedValue
が、場合によっては ID を手動で設定したい場合があります。
これは可能ですか?
JPA仕様でこれを行うことができることを知っているので、Hibernateで(JPA +アノテーションを使用して)できるはずです。
作成している新しい永続モデルの ID フィールドに入力するだけで、そのモデルを EntityManager に「マージ」すると、設定した ID が使用されます。
ただし、これには影響があります。その ID を使い果たしたばかりですが、GeneratedValue アノテーションで指定されたシーケンスはそれを認識していません。現在のシーケンス値よりも小さい unsed ID を指定しない限り、シーケンスが使用したばかりの値に追いつくと、問題が発生します。
したがって、ユーザーが ID を指定できるようにする場所はわかるかもしれませんが、将来発生する可能性のある例外 (重複 ID) をキャッチする必要があります。