Hibernate Error: Non-Unique Object Exception
Hibernate を使用してオブジェクトを保存しようとすると、「org.hibernate.NonUniqueObjectException」が発生する場合があります。 」は、同じ識別子を持つオブジェクトがすでに関連付けられていることを示します。 session.
このエラーは、同じ主キーを持つ 2 つの異なるオブジェクトがある場合に発生します。 Hibernate は主キー値を使用してオブジェクトを識別し、2 つのオブジェクトが同じキーを共有する場合、Hibernate はそれらが同じオブジェクトであると想定します。ただし、この場合、これらは別個のエンティティです。
このエラー メッセージは、2 つのオブジェクト間でカスケード保存があり、そのうちの 1 つ (オブジェクト B) が既にセッションに関連付けられているが、同じセッション上にない場合によく表示されます。
潜在的な原因:
考えられる原因の 1 つデータベースで生成された主キー ジェネレーターの使用です。このシナリオでは、オブジェクトがデータベースから削除され、同じ主キーを使用して再作成された場合、保存中に永続コンテキスト内の既存のオブジェクトと競合します。
もう 1 つの潜在的な原因は、更新または更新を行った場合です。他のオブジェクトによって参照されているテーブル内の値を削除しました。これらのオブジェクトを再挿入しようとすると、既存のオブジェクトは例外をスローします。
解決策の提案:
このエラーを解決するには:
以上がHibernate エラーを解決する方法: NonUniqueObjectException?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。