11

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

これは可能ですか?

4

1 に答える 1

5

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

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

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

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

于 2008-09-18T03:23:16.990 に答える