1 回答

TA貢獻4條經驗 獲得超0個贊
1、a different object with the same identifier value was already associated with the session。
錯誤原因:在hibernate中同一個session里面有了兩個相同標識但是是不同實體。
解決方法一:session.clean()
PS:如果在clean操作后面又進行了saveOrUpdate(object)等改變數據狀態的操作,有可能會報出"Found two representations of same collection"異常。
解決方法二:session.refresh(object)
PS:當object不是數據庫中已有數據的對象的時候,不能使用session.refresh(object)因為該方法是從hibernate的session中去重新取object,如果session中沒有這個對象,則會報錯所以當你使用saveOrUpdate(object)之前還需要判斷一下。
解決方法三:session.merge(object)
PS:Hibernate里面自帶的方法,推薦使用。
2、Found two representations of same collection
錯誤原因:見1。
解決方法:session.merge(object)
以上兩中異常經常出現在一對多映射和多對多映射中
添加回答
舉報