對原始類使用某種字節碼修改嗎?Hibernate如何檢測實體對象的髒狀態?
或者,也許Hibernate通過比較給定的對象與以前的持久版本來獲取髒狀態?
我在hashCode()
和equals()
複雜對象的方法有問題。如果對象具有集合成員,那麼計算哈希代碼的速度會很慢,並且循環引用也是一個問題。
如果Hibernate不會使用hashCode()
/equals()
檢查髒的狀態,我想我不應該使用equals()
/hashCode()
對實體對象(不是值對象),但我也害怕,如果同一個運營商(==
) 是不足夠的。
所以,問題是:
如何休眠知道,如果一個對象的屬性發生變化?
您是否建議覆蓋複雜對象的
hashCode()
/equals()
方法?如果它們包含循環引用呢?而且,也
將
hashCode()
/equals()
只用id
場夠嗎?
我認爲問題的一個部分是如何進行比較?我的意思是==檢查存儲快照的每個屬性?或者是其他東西? – 2015-05-11 07:59:59