2013-02-01 36 views
0

Author類:@ManyToOne,@OneToMany刪除錯誤

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

Book類:

@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; 

我想刪除作者,我收到以下錯誤: 「更新或刪除表」 作者「違反表」book「上的外鍵約束」fk_book_author_fk「。我如何刪除作者?我想先刪除作者,而不是預訂。

+0

你想刪除表?或者只是刪除一條記錄? – ogzd

+0

剛刪除一條記錄 – Stuart

回答

1

默認情況下,JPA不會級聯從父項到子項的操作。爲了能夠從Author這個級聯到Book,更改以下行:

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

要:

@OneToMany(mappedBy = "author", cascade = CascadeType.ALL) 
private List<Book> bookList; 
+0

謝謝,現在工作正常! – Stuart

0

作者和書籍在數據庫中相關,他們有刪除屬性,在你的情況下可以級聯。您可以將其更改爲'設置Null'並執行刪除。