Cascade=delete 不删除相关实体

我有 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

有什么线索吗?


Qyouu
浏览 101回答 2
2回答

不负相思意

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

紫衣仙女

尝试这个&nbsp; &nbsp;<bag name="limits">&nbsp; &nbsp; &nbsp; &nbsp;<key column="USER_ID" on-delete="cascade"/>&nbsp; &nbsp; &nbsp; &nbsp;<one-to-many class="com.mac.kom.modules.limits.models.LimitsModel" />&nbsp; &nbsp; </bag>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java