在使用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();