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;

著者を削除したいのですが、次のエラーが表示されます。著者を削除するにはどうすればよいですか? 本ではなく著者を先に削除したい。

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

author と book はデータベースで関連付けられており、削除時にカスケードできるプロパティがあります。これを「set Null」に変更して、削除を実行できます。

于 2013-02-01T13:02:42.567 に答える