春季JPA删除不会删除联接表

时间:2020-06-27 08:47:47

标签: java spring-boot spring-data-jpa

我正在尝试删除带有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;

0 个答案:

没有答案