JPA / Hibernate - 删除子项删除父项(从同一个表)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA / Hibernate - 删除子项删除父项(从同一个表)相关的知识,希望对你有一定的参考价值。

我有一个类Comment(见下文),其中一些Comment对象属于父Comment。到目前为止,当我删除父注释时,子项也被删除(如预期的那样),但是当删除子项时会出现问题,因为父项也被删除了。我想问题来自于类中使用的JPA配置。任何想法如何删除子而不影响父行?

 public class Comment {
   @Column  
   private String text;             

   @ManyToOne(cascade={CascadeType.ALL})
   private Comment parent;

   @OneToMany(cascade={CascadeType.ALL}, mappedBy="parent")
   private Set<Comment> childs = new HashSet<Comment>();
}

干杯

答案

cascade={CascadeType.ALL}的映射中删除parent

public class Comment {
   @Column  
   private String text;             

   @ManyToOne
   private Comment parent;

   @OneToMany(cascade=CascadeType.ALL, mappedBy="parent") // or orphanRemoval=true
   private Set<Comment> childs = new HashSet<Comment>();
}

以上是关于JPA / Hibernate - 删除子项删除父项(从同一个表)的主要内容,如果未能解决你的问题,请参考以下文章

JPA/Hibernate - 删除子删除父(从同一个表)

在JPA中删除子项时保持实体关系同步

Hibernate - 删除子项时如何从父项中删除实体

Maven + Spring Boot + JPA + Hibernate 项目有问题吗?

JPA/Hibernate 类型安全删除查询

JPA/Hibernate 级联删除不起作用