2010-06-01 75 views
0

可能重複:
Hibernate: different object with the same identifier value was already associated with the sessionHibernate對象的平等檢查

據我瞭解(糾正我,如果我錯了)Hibernate使用對象引用檢查對象平等。當Hibernate確定有多個對象附加到同一個數據庫記錄時,它會拋出以下異常。

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

我的問題是,不使用Hibernate equal()方法來檢查對象的相等(默認等於方法使用對象引用)?如果是這樣,重寫equal()方法會改變Hibernate的行爲嗎?

注意:我的問題不是關於Hibernate持久化對象中的issues of implementing equal() or hashCode()方法。

謝謝。

回答

1

Hibernate使用實體(即類)和配置的ID。過分簡化,這將看起來像這樣

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