繁体   English   中英

Cascade=delete 不删除相关实体

[英]Cascade=delete doesn't delete related entities

我确实有 2 个实体:
1. 用户
2. 限制

用户有一组限制,因此存在一对多关系。 我确实有一个级联类型设置为delete ,所以当User被删除时,所有相应的限制也应该被删除。

<bag name="limits" cascade="delete">
   <key column="USER_ID"/>
   <one-to-many class="com.mac.kom.modules.limits.models.LimitsModel" />
</bag>

当我尝试删除User我确实收到错误消息

Caused by: java.sql.SQLException: ORA-01407: cannot update ("DB"."LIMITS"."USER_ID") to NULL

有什么线索吗?

您应该级联delete-orphan
delete尝试通过清除 FK 字段来断开两个实体之间的链接。
delete-orphan不会授权在没有User情况下拥有一些LimitsModel ,因此会删除相关的LimitsModel记录。

尝试这个

   <bag name="limits">
       <key column="USER_ID" on-delete="cascade"/>
       <one-to-many class="com.mac.kom.modules.limits.models.LimitsModel" />
    </bag>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM