我有2個表格。如何使用Hibernate刪除父項時刪除所有子行?
// Accounts
@OneToMany(mappedBy="accounts", cascade=CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private Set<Mails> mails;
// Mails
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="user_id" , referencedColumnName="id", insertable=false, updatable=false)
private Accounts accounts;
如何整理刪除所有的子行,當父行會被刪除?我試圖爲Accounts
表設置CascadeType.DELETE_ORPHAN
,但是如果存在子行,我不能刪除父行。
你可以顯示'show create table'這兩個表的MySQL輸出? – marekful
@MarcellFülöphttp://pastebin.com/N4y0LBmY –
SQL語法是正確的,符合我的答案,但是我沒有看到InnoDB明確要求的外鍵定義中的ON DELETE CASCADE引擎在表級別允許自動子刪除。 – marekful