作者:小生、我怕怕
转载请注明该页面地址。
今天遇到了一个问题 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) 以上两中异常经常出现在一对多映射和多对多映射中 |
解决Hibernate中adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession异常
本文详细解析了在使用Hibernate时遇到的adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession异常,并提供了三种解决方案:session.clean()、session.refresh(object)、session.merge(object)。同时,解释了Foundtworepresentationsofsamecollection异常及其解决方法。重点在于一对多和多对多映射场景下如何避免和处理此类错误。
269

被折叠的 条评论
为什么被折叠?



