Hibernate对象相等性检查

时间:2010-06-01 11:58:10

标签: hibernate

  

可能重复:
  Hibernate: different object with the same identifier value was already associated with the session

据我所知(如果我错了,请纠正我)Hibernate使用对象引用来检查对象是否相等。当Hibernate识别出有多个对象附加到同一个DB记录时,它会抛出异常。

"a different object with the same identifier value was already associated with the session"

我的问题是,Hibernate是否使用equal()方法来检查对象的相等性(默认的equal方法使用对象引用)?如果是,那么覆盖equal()方法会改变Hibernate行为吗?

注意:我的问题不是关于Hibernate持久化对象中的issues of implementing equal() or hashCode()方法。

谢谢。

1 个答案:

答案 0 :(得分:1)

Hibernate使用实体(即类)和配置的id。过度简化,这看起来像这样

o1.getClass().equals(o2.getClass()) && o1.getId().equals(o2.getId())