据我了解(如果我错了,请纠正我),Hibernate使用对象引用来检查对象的相等性。当Hibernate识别同一数据库记录中有多个对象附加时,它将引发以下异常。
"a different object with the same identifier value was already associated with the session"
我的问题是,Hibernate是否使用equal()方法检查对象是否相等(默认的equal方法使用对象引用)?如果为true,则重写的equal()方法会改变Hibernate的行为吗?
equal()
注意:我的问题不是关于Hibernate持久对象中的实现equal()或hashCode()方法问题
hashCode()
谢谢。
Hibernate使用实体(即类)和已配置的ID。过于简化,看起来像这样
o1.getClass().equals(o2.getClass()) && o1.getId().equals(o2.getId())