可能重複:
Hibernate: different object with the same identifier value was already associated with the sessionHibernate中是否有覆蓋函數會覆蓋會話中具有相同標識符的對象? (未合併())
我有Hibernate的一個問題:
我有下面的類:人
我從服務器端的數據庫中加載特定的Person.class「A」。 然後我通過一個JSP頁面將這個對象呈現給客戶端。
客戶端操縱「A」到「B」,並且然後經由形式將其發送回。我將服務器端的Person.class「B」對象加載到一個新變量中,然後嘗試存儲它。
但作爲整個應用程序是基於會話我不能簡單地調用:
HibernateTemplate.saveOrUpdate("B");
相反,我必須在保存前合併「B」與「A」。
但是,當我打電話
HibernateTemplate.merge("B");
的「B」的對象仍然得到「A」,我不希望再存儲的所有屬性。我希望「B」完全替換「A」對象,而不通過合併它們來獲得某些「A」屬性。
所以我的問題是:
有沒有在Hibernate中的任何「覆蓋」或「替換」功能,可以覆蓋所有會話中的其中有一個特定對象的屬性相同標識符的對象?
(在這個例子中,從形式返回的對象「B」)
還應防止休眠的抱怨:
Exception in thread "main" org.hibernate.NonUniqueObjectException: a
different object with the same identifier value was already associated
with the session:
我不知道我的理解。如果你想更換B A,則只需從數據庫中刪除,並添加B. – 2012-07-25 14:04:01
,謝謝,我已經這樣做了previos我明確的解決方案。那也可以起作用。 – ndrizza 2012-07-25 16:15:36