我是Hibernate的新手,我需要在删除级联上使用单向多对一。
显然唯一的选择是,当父母知道其子女时。 但是,如果我通过SQL手动执行该操作呢?这个解决方案好吗?
alter table CHILDREN
add constraint FK_i4jjy61om foreign key (PARENT)
references PARENT
on delete cascade;
答案 0 :(得分:1)
您可以使用SQL ON DELETE CASCADE
,但必须小心evict属于您要删除的Parent的所有子实体。
如果你已经加载了Parent's Child,当你删除Parent时,如果没有Hibernate知道entity state change,那么将从数据库中删除Child。
为了解决这种情况,最好驱逐所有相关的子实体,以确保不会意外地通过其他一些关联transitive persistence重新保留它们。