Hibernate:无法在双向关联中删除父对象

时间:2011-11-09 18:41:00

标签: hibernate

我有两个表孩子

之间的双向关联
<class name="child" table="child">
      <id name="id" column="id" />
      <many-to-one name="parent_id" column="parent_id" 
                          class="parent" cascade="save-update"/>
</class>

<class name="parent" table="parent">
     <id name="id" column="id" />
     <set name="children" inverse="true" cascade="delete" >
         <key column="parent_id" />
         <one-to-many class="child" />
     </set>
</class>

我在尝试删除父级时只是获得SQLIntegrityConstraintViolationException

在删除此父级时,如何为所有与父级关联的子项删除hibernate?

1 个答案:

答案 0 :(得分:1)

您可以使用映射上的删除孤立选项删除子项。这被描述为here。这是有效的,因为孩子的生命周期受到父母生命的限制。 Hibernate知道它应该删除子节点时删除子节点,从而避免违反约束。即它会删除子项,然后删除父项。如果没有这个,你可能会违反约束。