2013-12-14 60 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导致尝试删除父行失败。

相关问题