質問

バイパスは可能ですか @GeneratedValue Hibernate の ID の場合、ほとんどの場合、ID を次のように設定したい場合があります。 GeneratedValue, 、ただし、場合によっては ID を手動で設定したい場合があります。

これは可能でしょうか?

役に立ちましたか?

解決

JPA 仕様でこれができることはわかっているので、Hibernate でも (JPA+ アノテーションを使用して) できるはずです。

作成している新しい永続モデルの ID フィールドを入力するだけの場合、そのモデルを EntityManager に「マージ」するときに、設定した ID が使用されます。

ただし、これには影響があります。その ID を使い果たしたばかりですが、GeneratedValue アノテーションで指定されたシーケンスはそれを認識しません。現在のシーケンス値より小さい未使用の ID を指定している場合を除き、シーケンスが使用した値に追いつくと問題が発生します。

したがって、ユーザーが ID を指定できるようにする必要があるかどうかはわかりますが、その場合は、将来発生する可能性のある例外 (重複 ID) をキャッチする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top