JPA 一对多删除时 无法使子对象的外键置空

2个对象,person和department。一个部门对应多个人员

//部门这边使用注解配置一对多关系
@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY, mappedBy = "person")
private Set sProducts = new HashSet(0);

问题是删除部门时顺带把部门下所有的人员都给删了,怎么设置才能使得删除部门时不删除人员,只是把人员的外键置空???

请注意,我使用的是jpa,不是hibernate

1个回答

这个可能不能用cascade吧,可以用bulk update先设置人员外键为空,再删除部门。不过需要注意的是bulk update不会更新缓存。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问