[Hibernate]a different object with the same identifier value was already associated with the session

来源:互联网 发布:宿舍用品淘宝店 编辑:程序博客网 时间:2024/06/11 16:21

在同一个session内,如果已经有一个对象已经是持久化状态(load进来等),现在构造一个新的PO,和前一个持久化对象拥有相同的持久化标识(identifier),在update的时候,就会抛这个错误。


解决方法


1.如果是hibernate3以上,可以使用session.merge()方法
2.把session中同标识的对象移出(session.evict(user1)),使他成为脱管的状态,然后user2就可以update了。

 例:HibernateSessionFactory.getSession().evict(object);