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