關於hibernate 更新或者刪除報錯different object with the same identifier

Hibernate 疑難異常及處理


一、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裏面自帶的方法,推薦使用。

二、Found two representations of same collection

  錯誤緣由:見1。

  解決方法:session.merge(object)

以上兩中異常常常出如今一對多映射和多對多映射中數據庫

相關文章
相關標籤/搜索