gpt4 book ai didi

java - Spring数据JPA |从 @ManyToMany 关系中的 @JoinTable 中删除 MyGroup 时仅删除条目

转载 作者:行者123 更新时间:2023-12-01 16:41:31 32 4
gpt4 key购买 nike

我正在使用 spring Boot 2.0 和 spring data jpa 以及 hibernate。我正在创建一个网络应用程序,用户可以在其中创建组,其他用户可以加入该组。为此,我创建了两个名为 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>();

}

在这里,我希望,如果删除一个组,那么它的连接表中的关系条目也会被删除,但不应删除用户。该代码甚至还删除了用户。请建议我如何仅删除组和关系条目。

最佳答案

MyGroup.java 中的 CascadeType.ALL 在删除组时删除所有关联的用户。因此,将级联 CascadeType.ALL 替换为 CascadeType.MERGE

关于java - Spring数据JPA |从 @ManyToMany 关系中的 @JoinTable 中删除 MyGroup 时仅删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61850833/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com