[转]解决a different object with the same identifier value was already associated with the session错误

转载 2013年12月01日 20:13:39

微笑实际采用this.getHibernateTemplate().clear();清楚session缓存,目前未见不良反应


这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生

原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识

但是是不同实体,当这时运行saveOrUpdate(object)操作的时候就会报这个错误。

呵呵,也许你会说,你这么说跟没说没什么区别,我承认,呵呵,我不知道具体

为什么会产生这个错误,要不然也不会很久都没有解决,现在,给出一个临时的

解决方案,给向我一样,没有办法找到根源的人一个能够继续执行下去的方法

(当然是对的,只是不是从产生原因入手)

    其实要解决这个问题很简单,只需要进行session.clean()操作就可以解决

了,但是你在clean操作后面又进行了saveOrUpdate(object)操作,有可能

会报出"
Found two representations of same collection"我找了很多资料,

没有什么很好的解释,其中这篇文章帮助最大

http://opensource.atlassian.com/projects/hibernate/browse/HHH-509

最后通过session.refresh(object)方法就可以解决了,注意,当object不

是数据库中已有数据的对象的时候,不能使用session.refresh(object)因

为refresh是从hibernate的session中去重新取object,如果session中没

有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判

断一下


    当然这个问题最容易解决的办法还是使用Hibernate里面自带的merge()

方法。不过我始终觉得碰到问题就用这种软件自带的非常用方法

(和saveOrUpdate(),save(),update()相比)感觉十分不爽。

    后来我还发现这种错误经常出现在一对多映射和多对多映射,请大家在

使用一对多和多对多映射的时候要小心一些

Hibernate 疑难异常及处理

1、a different object with the same identifier value was already associated with the session。

  错误原因:在hibernate中同一个session里面有了两个相同标识但是是不同实体。

  解决方法一:session.clean()

  PS:如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Found two representations of same collection"异常。

  解决方法二:session.refresh(object)

  PS:当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。

  解决方法三:session.merge(object)

  PS:Hibernate里面自带的方法,推荐使用。

2、Found two representations of same collection

  错误原因:见1。

  解决方法:session.merge(object)

以上两中异常经常出现在一对多映射和多对多映射中


[转]解决a different object with the same identifier value was already associated with the session错误

这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生 原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识 但是是不同实体,当这时运行sav...

解决a different object with the same identifier value was already associated with the session错误

这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体,当这时运行saveOrUpdat...
  • xuwoool
  • xuwoool
  • 2011年04月25日 16:54
  • 294

浅谈 a different object with the same identifier value was already associated with the session错误

开发一年都没有博客的习惯,以后要养成zhe'zhong

a different object with the same identifier value was already associated with the session错误

这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体,当这时运行saveOrUpdate(object)操作的时候就会报这个错误。呵呵,也许...

解决 a different object with the same identifier value was already associated with the session

this.getHibernateTemplate().clear();//在一对多,多对多的时候,常常会遇到这样的错误:a different object with the same identi...
  • jpr1990
  • jpr1990
  • 2012年03月30日 15:42
  • 1288

spring(错误三) 报错" a different object with the same identifier value was already associated ..."

错误信息如下: org.springframework.dao.DuplicateKeyException: a different object with the same identifier ...

a different object with the same identifier value was already associated with the session 2

这个问题,我把对象赋值为NULL,也是很好用的.在我的系统中,更新好用了,可是插入不好用了.没改前,是插入好用,而更新不好用.本来是系统中的问题,可是,catch只是捕捉到,从但是,没有把log打印出...

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

这个问题,我把对象赋值为NULL,也是很好用的.在我的系统中,更新好用了,可是插入不好用了.没改前,是插入好用,而更新不好用.本来是系统中的问题,可是,catch只是捕捉到,从但是,没有把log打印出...
  • ynztpwl
  • ynztpwl
  • 2011年10月12日 09:29
  • 263

hibernate报错a different object with the same identifier value was already associated with the session

以前也遇到过这个异常,当时也不知道怎么做就上网查,这回又再一次的遇到了这个异常了,决心要追根溯源,找到问题的原点。 a different object with the same identifi...

a different object with the same identifier value was already associated with the session:

问题:这个著名的托管态update更新异常Struts has detected an unhandled exception: Messages:a different object with ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]解决a different object with the same identifier value was already associated with the session错误
举报原因:
原因补充:

(最多只允许输入30个字)