1

重複の可能性:
休止状態:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられています

Hibernate例外で取得した一部のオブジェクトが、@記号で出力されると、次のように表示されるのはなぜですか。

オブジェクトを削除できません

db.item.model.Inventory@21d321bb

しかし、次のように表示されるものもあります。

org.hibernate.NonUniqueObjectException:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられています:[db.item.model.Inventory#9369629]

#記号の後に識別子がありますか?

4

3 に答える 3

4

db.item.model.Inventory@21d321bbはメモリアドレスを参照します。

db.item.model.Inventory#9369629は、ID9369629のエンティティを参照します。

于 2011-05-20T14:31:48.860 に答える
2

#の後の識別子は、テーブル内のオブジェクトの主キーです。

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

db.item.model.Inventory@21d321bbは、デフォルトのequalsメソッド、つまりObject.equals()によって出力されます。

于 2011-05-20T14:31:51.393 に答える
0

db.item.model.Inventory@21d321bbは特定のインスタンスです。[db.item.model.Inventory#9369629]は、@Id9369629を持つ2つ以上のインスタンスです。

于 2011-05-20T14:34:59.087 に答える