hibernate保存異常a different object with the same ……

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was ...緩存

controller裏調用service方法進行保存更新; 產品來新需求了,若是是另外一種狀態下的產品,不須要進行下邊的兩步審覈。得了,先應急解決吧。session

在這個service方法裏保存再調用另外一個方法裏的保存,(爲了不出現更大的問題,先只調用原有業務的每一步保存,主要是保存的狀態不一樣,多張表保存也不能亂動);保存同一個對象,保存以後再改變這個對象的值set進去再保存就會報錯。 org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread……ide

網上搜,和hibernate的一級緩存有關,session級別緩存。 解決辦法:.net

我這裏用session.load(object.class,id),強轉一下,再保存能夠了。hibernate

解決方法彙總以下:(複製粘貼了) 1.不要從新new一個對象,使用load的對象對他進行更改值。 例如上面例子直接對user1操做,最後更新user1 2.若是是hibernate3以上,能夠使用session.merge()方法 3.把session中同標識的對象移出(session.evict(user1)),使他成爲脫管的狀態,而後user2就能夠update了。對象

參考網址以下: https://blog.csdn.net/u014038534/article/details/50595627blog

相關文章
相關標籤/搜索