亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用hibernate報錯,怎么解決????急急急

使用hibernate報錯,怎么解決????急急急

qq_莫非 2017-12-28 19:12:06
Exception?in?thread?"main"?org.hibernate.NonUniqueObjectException:?A?different?object?with?the?same?identifier?value?was?already?associated?with?the?session?:?[javaBean.User#1] at?org.hibernate.engine.internal.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:642) at?org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:284) at?org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:227) at?org.hibernate.event.internal.DefaultUpdateEventListener.performSaveOrUpdate(DefaultUpdateEventListener.java:38) at?org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) at?org.hibernate.internal.SessionImpl.fireUpdate(SessionImpl.java:706) at?org.hibernate.internal.SessionImpl.update(SessionImpl.java:698) at?org.hibernate.internal.SessionImpl.update(SessionImpl.java:693) at?dao.UserDAO.update(UserDAO.java:27) at?servlet.Test.main(Test.java:31)
查看完整描述

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)

以上兩中異常經常出現在一對多映射和多對多映射中


查看完整回答
反對 回復 2017-12-29
  • 1 回答
  • 0 關注
  • 1770 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號