使用 CascadeType.ALL 的 JPA 中的孤立节点
尽管使用了 JPA 的 CascadeType.ALL,孤立节点仍保留在数据库中,阻碍了删除。要解决此问题,有多种方法,具体取决于持久性提供程序和 JPA 版本:
Hibernate 配置
如果使用 Hibernate,请显式定义 CascadeType.DELETE_ORPHAN 注释与 JPA CascadeType.ALL 结合使用:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private Listbikes;
JPA解决方案(没有Hibernate)
在没有Hibernate的情况下,在删除父记录之前显式删除子元素:
JPA 2.0
JPA 2.0引入了orphanRemoval属性:
@OneToMany(mappedBy="foo", orphanRemoval=true)
通过将 orphanRemoval 设置为 true,JPA 将在删除父实体时自动删除孤立的子记录。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3