java - 无法删除子实体 JPA
问题描述
我有这样的关系的 JPA 实体:
public class SuperParent {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "parent_id")
@Builder.Default
private Set<Parent> parents = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "super_parent_id")
private Set<Child> children = new HashSet<>();
}
public class Parent {
@OneToMany(mappedBy= "parent" cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@Builder.Default
private Set<Child> children = new HashSet<>();
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "super_parent_id")
private SuperParent superParent;
}
public class Child {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id")
private Parent parent;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "super_parent_id")
private SuperParent superParent;
}
当我调用childRepository.deleteById()
时,删除操作不会删除子实体,我不知道是什么问题。
解决方案
推荐阅读
- android - Android模拟器启动然后关闭而没有连接
- google-cloud-platform - Google Cloud Vision 小写 大写
- marklogic - 在 XQuery 中的不同行捕获时间戳
- scala - 我可以使用哪些工具来对 Scala 代码进行基准测试?
- python - 从一个数据框中获取缺失的列并将其附加到另一个数据框中
- typescript - 如何将文本文件导入打字稿?
- javascript - 具有可单击按钮的网页抓取网站
- java - 如何在 Android 中创建“始终在顶部覆盖”
- vb.net - Visual Studio 2019 - 调试时如何逐步进行?
- c# - 如何以世界单位设置纹理的滚动速度?