我正在尝试删除带有spring数据jpa的Entity,但由于其中的联接表似乎不起作用。我想按ID删除ReadingList
,但不删除用户和图书。但是该条目保留在数据库中,除非我在ReadingList内设置CascadeType.REMOVE,这会导致它也删除书籍和用户。
我必须如何设置“关系”才能起作用? 这三个班。 第一个用户:
@Entity
@Table(name = "`user`")
public class User {
@Id
private String id;
private String firstName;
private String lastName;
@OneToMany(
mappedBy = "user",
cascade = CascadeType.ALL,
orphanRemoval = true,
fetch = FetchType.EAGER)
private List<ReadingList> readingList;
第二本书:
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String title;
private String author;
第三阅读列表:
@Entity
@Table(name = "readingList")
public class ReadingList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
@ManyToMany(cascade = CascadeType.PERSIST)
private Collection<Book> books;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "ownerId")
private User user;