在Hibernate的session中同时有两个相同id的同类型对象,修改失败

若在Hibernate的session中同时有两个相同id的同类型对象,修改会失败,报错:a different object with the same identifier value was already

解决方案:

使用merge()

如下情景:

User u = dao.getUser(...) ;

User u2 = ... ;

u2.setId(u.getId()) ; //此时的session中就有了两个id一样的对象了,

dao.update(u2) ; //这里就会报错了,

dao.merge(u2) ; //这样就行了

posted @ 2014-08-24 22:15  行-云  阅读(317)  评论(0编辑  收藏  举报