休眠一对多关联删除

Posted

技术标签:

【中文标题】休眠一对多关联删除【英文标题】:Hibernate one to many association deletion 【发布时间】:2020-07-18 10:07:28 【问题描述】:

在与级联启用的一对多双向关联中,休眠中的所有删除孤儿,是否有任何可能休眠尝试使用外键列删除子实体? 它触发了一个额外的查询 delete from child where foreign_key_col = parent_primary_key。

【问题讨论】:

触发“额外查询”是什么意思?一旦删除了相应的主记录,您希望如何删除子记录? 【参考方案1】:

对于双向关系,如果删除父实体中的级联。

您可以直接从父级中删除子级。

//set parent as null
child.setParent(null)

//parent.children.iterater and remove it from the iterator.

//then save the parent.
save(parent)

【讨论】:

以上是关于休眠一对多关联删除的主要内容,如果未能解决你的问题,请参考以下文章

删除与基于视图的实体具有一对多关联的实体对象

休眠 OneToMany 和 ManyToOne?

一对多的连接列为空休眠

Hibernate的一对多自关联中的级联删除问题

一对多和一对多连续映射的休眠条件查询 - 表或视图不存在

休眠一对多关系