org.springframework.dao.DuplicateKeyException: a different object with the same identifier value was


在使用hibernate框架里面的:saveOrUpdate報錯:

 

意思就是另一個對象的id(id同值)已經被session關聯了。

原因分析:

在第1步中中通過titleList.get(0)獲取一個對象duty1,在第2步中將duty的dutyId設置成duty1的dutyId,而duty1本來就是存在一級緩存session里面的,在第3步時saveOrUpdate(duty)相當於內存中存在兩個dutyId一樣的對象,因此拋出異常。

解決方法:

如果dao或Service類繼承了HibernateDaoSupport,可以調用this.getHibernateTemplate().clear();清除session(的關聯)。

如圖中的第二步添加了:this.getHibernateTemplate().clear();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM