这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.
一开始按网上说的用
session.merge(Object)报了一个错,可能是没有用好,改用 session.clear(); session.update(user);这样就OK了,
方法为:
package org.springframework.orm.hibernate3.support;
...
public void modifyByMerge(User user) {
Session session = getHibernateTemplate().getSessionFactory().
getCurrentSession();
session.clear();
session.update(user);
}
...
项目用的是spring + hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session
posted on 2007-08-20 11:29
摩西 阅读(29466)
评论(9) 编辑 收藏 所属分类:
work_2007
Feedback
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2009-11-06 13:26 |
检查你类的 equal 方法 ,一般是不必用merge 什么的
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session[未登录]
2009-12-11 11:09 |
可能是因为在更新的时候,session中有这个对象,但是仍然new 一个对象出来,那样saveorupdate的时候就会出来两个对象
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2010-06-30 15:18 |
@tanyb02@163.com
用了equals方法会怎样,我发现我的就是那里有问题
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2011-10-08 19:39 |
你内存中已经有一个实体类的对象,你现在可能又查找了一次,但是内存中有两个相同的实体类就有所冲突了……
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2013-03-15 14:56 |
项目中的session不能随便clear吧。。
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2014-04-08 18:05 |
好,支持。 我刚刚也遇到了这个问题
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session[未登录]
2014-07-25 17:57 |
同遇到这个问题.我找了好多办法. 基本上出来的答案都是一致的..
但是我并不是你们那样解决的. 出现这个问题的根本原因在与session中2个相同的实体对象. 如果能保证只有一个对象那么就不会出现这个问题.
比方说 你更新某个实体之前,查了一下这个实体,那么在更新就会报错. 可以考虑用查出来的实体重新赋值. 在更新就不会报错了
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2014-08-25 08:25 |
在更新保存的时候,因为有不同的对象而发生了错误,在update之前用clear管用
回复 更多评论
# re: 再次碰到:a different object with the same identifier value was already associated with the session
2015-04-01 14:33 |
@test你的回答完美解决了我的问题 思路很正确
回复 更多评论