您的位置:首页 > 移动开发 > Objective-C

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

2008-12-23 09:32 627 查看
这个问题出现的一对多或多对多中, 把多对多的一边或者一对多的多方的cascade设为none就可以了(两边都设为save-update就会出现这个问题)。
我猜想是由于循环的update导致一个Session内有相同的id。
有熟悉Hibernate源码的吗?这应该是Hibernate的一个Bug

这是我以前的解决办法,有时管用,有时不管用。

此情况多出现在hibernate一对多,多对多映射中,若多对一的一方把多方的lazy设置成TRUE,在更改多方某条记录时,若不改变一方的id直接修改多方的某条记录,就回出现此错误。

如:

<set name="appFiles"
table="applicationinfo"
inverse="false"
cascade="all"
lazy="true">

<key column="ApplicationTypeId"></key>
<one-to-many class="pojo.AppFile"/>
</set>

<many-to-one name="typeInfo"
class="pojo.AppTypeInfo"
cascade="all"
lazy="false"
>
<column name="ApplicationTypeId"></column>
</many-to-one>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐