可能重复:
休眠:具有相同标识符值的不同对象已与会话关联
为什么我在 Hibernate 异常中得到的某些对象在使用 @ 符号打印出来时会显示如下:
无法移除对象
db.item.model.Inventory@21d321bb
但有些看起来像这样:
org.hibernate.NonUniqueObjectException:具有相同标识符值的不同对象已与会话关联:[db.item.model.Inventory#9369629]
# 符号后的标识符?
可能重复:
休眠:具有相同标识符值的不同对象已与会话关联
为什么我在 Hibernate 异常中得到的某些对象在使用 @ 符号打印出来时会显示如下:
无法移除对象
db.item.model.Inventory@21d321bb
但有些看起来像这样:
org.hibernate.NonUniqueObjectException:具有相同标识符值的不同对象已与会话关联:[db.item.model.Inventory#9369629]
# 符号后的标识符?
db.item.model.Inventory@21d321bb 指的是内存地址。
db.item.model.Inventory#9369629 指的是 ID 为 9369629 的实体。
# 后面的标识符是表中对象的主键。
当将具有相同标识符(主键)的两个对象添加到会话中时,会发生 NonUniqueObjectException。
db.item.model.Inventory@21d321bb 由默认的equals 方法即Object.equals() 输出。
db.item.model.Inventory@21d321bb 是某个实例。[db.item.model.Inventory#9369629] 是两个或多个具有@Id 9369629 的实例。