2011-05-20 7 views
1

可能性の重複:
Hibernate: different object with the same identifier value was already associated with the sessionこれらのHibernateオブジェクトはどのように異なるのですか?

それらは、@記号でプリントアウトされたときに、なぜ私はHibernateの例外に入るいくつかのオブジェクトは、次のように表示されない:

がオブジェクトを削除することはできません

[email protected]

しかし、いくつかは次のように表示されます。

org.hibernate.NonUniqueObjectException: 同じ 識別子の値を持つ異なるオブジェクトがすでにセッションに関連する た: [db.item.model。在庫番号#9369629]

#記号の後の識別子は?

答えて

2

持つエンティティに識別子を指します。

NonUniqueObjectExceptionは、同じ識別子(主キー)を持つ2つのオブジェクトがセッションに追加されたときに発生します。

[email protected]は、デフォルトのequalsメソッド、つまりObject.equals()によって出力されます。

4

[email protected]は、メモリアドレスを参照します。 #は、テーブル内のオブジェクトの主キーである後

#9369629 db.item.model.InventoryはID 9369629.

+0

しかし、それらは同じオブジェクトにすることはできますか? – Rihards

+0

彼らは確かに、例外メッセージテキストに矛盾があります。同じIDを参照するかどうかを判断する最も良い方法は、デバッガを使用するか、idプロパティをコンソールに書き出すことです。 – Marcelo

0

[email protected]は特定のインスタンスです。 [db.item.model.Inventory#9369629]は@Id 9369629の2つ以上のインスタンスです。

関連する問題