【问题标题】:Hibernate: cannot delete parent object in a bidirectionnal association休眠:无法删除双向关联中的父对象
【发布时间】:2011-11-10 22:22:43
【问题描述】:

我在两个表 parentchild

之间有一个双向关联
<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】:

    您可以使用映射上的删除孤儿选项删除子项。这被描述为here。这是有效的,因为孩子的寿命受到父母的寿命的限制。 Hibernate 知道它应该在删除父级时删除子级,因此避免违反约束。 IE。它删除孩子,然后是父母。没有这个,你可能会违反约束。

    【讨论】:

    • 您能否将其标记为正确答案,然后请 :) 谢谢!
    猜你喜欢
    • 2015-05-31
    • 2011-04-12
    • 1970-01-01
    • 2021-07-23
    • 2013-02-15
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2013-05-25
    相关资源
    最近更新 更多