2011-05-20 50 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。

[email protected]由默認的equals方法(即Object.equals())輸出。

4

[email protected]指的是一個內存地址。

db.item.model.Inventory#9369629是指實體ID 9369629.

+0

但它們可以是相同的對象,不可以嗎? – Rihards 2011-05-20 14:32:17

+0

他們肯定可以,只有與例外消息文本不一致。確定引用相同ID的最佳方法是使用調試器或將id屬性寫入控制檯。 – Marcelo 2011-05-20 14:34:57

0

[email protected]是某個實例。 [db.item.model.Inventory#9369629]是兩個或兩個以上使用@Id 9369629的實例。