缘分小风

导航

 
异 常 信 息 库 收 集 大 全
异常信息 原因 解决办法
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:[com.fatkun.dao.hibernate.User#12] 问题:这个著名的托管态update更新异常;几乎所有搞过OrMapping持久化程序的开发者都多多少少碰到过这个异常.
这个异常通常发生在一个session 内对同一个数据库对象生成了多个(经常是load(id)/get(id)一个,又new+setId(id)一个),然后又对其进行了update()或者save() .
从业务逻辑的角度,经常发生在修改/更新的操作中
解决办法:
    merge()会用"拷贝状态copy the state",也就是属性赋值的直接方法,完成相同id对象的更新,实际就是把内容克隆过去.
    如果是一个新的对象实例,merge()实际就等同于save()和persist()
    但与save()和persist()不同,merge()完成后,其操作的对象是托管态.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
posted on 2015-08-27 16:18  缘分小风  阅读(164)  评论(0)    收藏  举报