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 指的是 ID 为 9369629 的实体。

于 2011-05-20T14:31:48.860 回答
2

# 后面的标识符是表中对象的主键。

当将具有相同标识符(主键)的两个对象添加到会话中时,会发生 NonUniqueObjectException。

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] 是两个或多个具有@Id 9369629 的实例。

于 2011-05-20T14:34:59.087 回答