use*_*052 8 java hibernate hibernate-onetomany
我收到一个错误:
不要使用cascade ="all-delete-orphan"更改对集合的引用
在尝试以下操作时:
beginTx();
Parent parent = new Parent();
Child child = new Child();
parent.addChild(child);
getSession().save(parent);
commitTx();
closeSession();
beginTx();
//id is the primary key
child.setID(null);
getSession().update(child);
commitTx();
closeSession();
Run Code Online (Sandbox Code Playgroud)
父母和孩子通过one-to-many
cascade =' all-delete-orphan
'相关联.
class Parent {
Set child;
}
<set name="child" table="Child" cascade="all-delete-orphan" inverse="true">
<key column="FK"></key>
<one-to-many class="Child"/>
</set>
Run Code Online (Sandbox Code Playgroud)
知道为什么会抛出这个异常吗?为什么即使实体处于分离状态,在主键上设置null也会导致此异常?
如果加载具有集合的实体,则会发生此异常cascade=all-delete-orphan
,然后删除对集合的引用.
不要替换此集合.始终用于collection.clear()
删除所有关联的子条目,以便孤立删除算法可以检测到更改.如果你想删除任何特定的孩子,你只需要从集合中删除它.从集合中删除后,它将被视为孤儿并将被删除.
归档时间: |
|
查看次数: |
21281 次 |
最近记录: |