2013-12-14 100 views
0

我創建了一個主表如下有沒有什麼辦法從關係中的表中刪除記錄?

public class main() 
{ 
@Id 
private String ID; 

@OneToMany(cascade={CascadeType.ALL}) 
@JoinColumn(name="ID") 
    private List<Subtable1> Subtab; 


@OneToMany(cascade={CascadeType.ALL}) 
@JoinColumn(name="ID") 
private List<Subtable2> Stutab2; 

getter n setter... 
} 

我的子類

public class subtable1{ 
@Column(name="Name") 
String name; 

@ManyToOne 
@JoinColumn(name="ID") 
private main m; 
getter n setter.. 
} 

public class subtable2{ 
@Column(name="AGE") 
String age; 

@ManyToOne 
@JoinColumn(name="ID") 
private main m; 
getter n setter... 
} 

現在我需要刪除主表中的記錄。它不允許我直接在主表中刪除它。如果我從subtable1和subtable2刪除記錄,它允許我刪除主表中的相應記錄。這個過程太長了,所以我需要刪除主表中的記錄其相應的記錄應該在子目錄中刪除。我該怎麼辦?

回答

0

它可以通過設計mysql中的表。 CASCADE是你所需要的: 看看這個:

CASCADE將傳播的變化時,父母的變化。 (如果您 刪除一行,在引用該行約束表中的行會 也被刪除等)

SET NULL當父行消失列值設置爲NULL。

RESTRICT導致嘗試刪除父行失敗。

相關問題