我正在将Spring Boot 2.0和spring数据jpa与hibernate一起使用。我正在创建一个Web应用程序,用户可以在其中创建群组,其他用户可以加入该群组。为此,我创建了两个名为User和MyGroup的实体,如下所示。
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
@Entity
public class User extends BaseEntity {
String name;
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "members")
Set<MyGroup> joinedGroup= new HashSet<MyGroup>();
}
@Entity
public class MyGroup extends BaseEntity {
String name;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Set<User> members = new HashSet<User>();
}
在这里,我想要的是,如果删除了一个组,那么它从联接表中的关系条目也将被删除,但用户不应被删除。此代码甚至也删除了用户。请建议我如何删除组和关系条目。
答案 0 :(得分:0)
CascadeType.ALL会在删除组后删除所有关联的用户。因此,将级联CascadeType.ALL替换为CascadeType.MERGE