我想出了一个解决方案来建立一对一的关系,创建一个与父实体的唯一标识符(FK)的多对一关系。
示例:
<many-to-one name="parent" cascade="delete" column="parent_id" unique="true"/>
所以,我的子实体中有一个父ID(FK)。到目前为止一切顺利,如果删除父实体,孩子也会被删除。
问题是当我尝试删除子进程时,我得到了ObjectDeletedException。
示例:
child.delete() // throws Except.
如果我设置了
,我已经想出了一个解决方案child.setParent(null)
我能够毫无问题地删除我的孩子,但我想了解这种情况的本质,是映射错误的方式吗?我知道hibernate在尝试删除之前将FK设置为null,但我不知道为什么在这种情况下它不能这样做。