一、清空Session缓存
也就是执行session .clean()方法,但是如果在clean之后再对对象saveOrUpdate就会报错:“Found two representations of same collection ”,所以这个解决办法不可取
二、刷新Session
session .refresh(object)方 法就可以解决了,注意,当object不是数据库中已有数据的对象的时候,不能使用session .refresh(object)因为refresh是 从hibernate 的session中去 重新取object,如果session中 没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下
三、最好的解决办法:session.merge()
这个是我认为比较好的解决办法了,session里面有一个相同标示的对象,业务方法里也有一个相同标示的对象,把两个合并起来不就可以了,最后调用session.merge()更新到数据库,OK