0

作者等级:

@Id
@GeneratedValue(
        strategy = GenerationType.AUTO)
private int id;
private String firstName;
private String lastName;
@OneToMany(
        mappedBy = "author")
private List<Book> bookList;

书类:

@Id
@GeneratedValue(
        strategy = GenerationType.AUTO)
private int id;
private String name;
private String language;
private int isbn;
@ManyToOne
@JoinColumn(
        name = "author_fk")
private Author author;

我想删除作者,但出现以下错误:“更新或删除表“作者”违反了表“书”上的外键约束“fk_book_author_fk””。如何删除作者?我想先删除作者,而不是书。

4

2 回答 2

1

默认情况下,JPA 不会将操作从父实体级联到子实体。要启用此级联从Authordown 到Book,请更改以下行:

@OneToMany(mappedBy = "author")
private List<Book> bookList;

到:

@OneToMany(mappedBy = "author", cascade = CascadeType.ALL)
private List<Book> bookList;
于 2013-02-01T13:15:20.307 回答
0

作者和书在数据库中是相关的,并且它们具有删除属性,在您的情况下可以级联。您可以将其更改为“设置 Null”并执行删除。

于 2013-02-01T13:02:42.567 回答