为了账号安全,请及时绑定邮箱和手机立即绑定

子对象没有被删除

子对象没有被删除

慕哥9229398 2021-12-10 09:56:57
我在级联删除子对象时遇到问题。我使用 EclipseLink。当父表中的主键同时也是子表中的主键时,一对一关系的映射。 class Parent {    @Column(name = "PARENT_ID", unique = true, nullable = false)    private Long id;    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "parent")    private Child child;}class Child {    @Id    @JoinColumn(name = "PARENT_ID", unique = true)    private Parent childId;}当我尝试“DELETE FROM Parent parent WHERE parent.id in :parentIds”时,我得到了找到子对象的信息。你能给我一些建议吗?
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

这个问题通常发生在 OneToOne 类型的映射中,由于从父到子的外键约束,因为子实体会指向一个不存在的实体。您必须首先删除引用,通过查找实体及其映射,将引用设置为空,然后您可以合并/保留/删除它。



查看完整回答
反对 回复 2021-12-10
?
www说

TA贡献1775条经验 获得超8个赞

JPQL 批量更新和删除不会将对象加载到内存中,因此您有责任自己删除或修复任何引用。在这种情况下,您需要先运行批量删除以清除子项,然后才能删除父项。


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信