`

Hibernate 疑难杂症

    博客分类:
  • Java
阅读更多

作者:小生、我怕怕

网址:http://www.apkbank.net

          http://www.17zouguo.net

转载请注明该页面地址。

 

今天遇到了一个问题  a different object with the same identifier value was already associated with the session  很难解决,查了查文档,总结如下。

 

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)

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

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics