对原始类使用某种字节码修改吗?Hibernate如何检测实体对象的脏状态?
或者,也许Hibernate通过比较给定的对象与以前的持久版本来获取脏状态?
我在hashCode()
和equals()
复杂对象的方法有问题。如果对象具有集合成员,那么计算哈希代码的速度会很慢,并且循环引用也是一个问题。
如果Hibernate不会使用hashCode()
/equals()
检查脏的状态,我想我不应该使用equals()
/hashCode()
对实体对象(不是值对象),但我也害怕,如果同一个运营商(==
) 是不足够的。
所以,问题是:
如何休眠知道,如果一个对象的属性发生变化?
您是否建议覆盖复杂对象的
hashCode()
/equals()
方法?如果它们包含循环引用呢?而且,也
将
hashCode()
/equals()
只用id
场够吗?
我认为问题的一个部分是如何进行比较?我的意思是==检查存储快照的每个属性?或者是其他东西? – 2015-05-11 07:59:59