java - Hibernate单向多对一和级联删除

标签 java sql hibernate jpa many-to-one

我是 Hibernate 的新手,我需要单向多对一删除级联。

显然,唯一的选择是,当父级知道其子级时。 但是如果我通过 SQL 手动执行呢?这个解决方案好吗?

alter table CHILDREN 
add constraint FK_i4jjy61om foreign key (PARENT)
references PARENT
on delete cascade;

最佳答案

你可以使用 SQL ON DELETE CASCADE,但你必须小心 evict属于您要删除的父实体的所有子实体。

如果您已经加载了父项的子项,当您删除父项时,子项将从数据库中删除,而 Hibernate 不知道 entity state change .

为了解决这种情况,最好驱逐所有关联的子实体,以确保您不会不小心通过其他一些关联重新保留它们 transitive persistence .

关于java - Hibernate单向多对一和级联删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141323/

相关文章:

java - 谁能解释 Windows (7 Pro N) 和 Linux ( Ubuntu 12-04) 之间的套接字吞吐量差异

sql - 多对多关系——自动删除孤儿

sql - 从 JSON 列计算平均值

sql - 如何避免为准备好的语句的每一行启动触发器?

android - Hibernate - 无法执行 JDBC 批量更新

java - 频繁关闭和打开 hibernate session 是个好主意吗?

java - 玩家向左上角移动

java - 使用分而治之检查排序数组是否有 A[i] = i

java - 创建实例时可用区无效

java - 在 EJB-Hibernate 环境中使用 JDBC