休眠如何检测实体对象的脏状态?
它是否对原始类使用某种字节码修改?
或者,也许Hibernate通过将给定对象与先前持久化的版本进行比较来获得脏状态?
我对复杂对象的方法有问题。我觉得如果对象具有集合成员,则计算哈希代码会非常慢,并且循环引用也是一个问题。hashCode()
equals()
如果Hibernate不使用/来检查脏状态,我想我不应该使用/作为实体对象(不是值对象),但我也担心如果相同的运算符()是不够的。hashCode()
equals()
equals()
hashCode()
==
所以,问题是:
-
Hibernate 如何知道对象的属性是否已更改?
-
您是否建议覆盖复杂对象的 / 方法?如果它们包含循环引用怎么办?
hashCode()
equals()
而且,
-
/只有字段就足够了吗?
hashCode()
equals()
id