可能重复:
Hibernate: different object with the same identifier value was already associated with the session
为什么我在Hibernate异常中遇到的某些对象在使用@符号打印出来时会显示如下:
无法删除对象
db.item.model.Inventory@21d321bb
但有些看起来像这样:
org.hibernate.NonUniqueObjectException: 具有相同的不同对象 标识符值已经存在 与会话相关联: [db.item.model.Inventory#9369629]
使用#符号后面的标识符
答案 0 :(得分:4)
db.item.model.Inventory@21d321bb是指内存地址。
db.item.model.Inventory#9369629是指ID为9369629的实体。
答案 1 :(得分:2)
#之后的标识符是表中对象的主键。
当会话中添加了两个具有相同标识符(主键)的对象时,会发生NonUniqueObjectException。
db.item.model.Inventory@21d321bb由默认的equals方法输出,即Object.equals()。
答案 2 :(得分:0)
db.item.model.Inventory@21d321bb是某个实例。 [db.item.model.Inventory#9369629]是两个或多个@Id 9369629的实例。