2013-12-13 53 views
-1

我创建了一个类,如下如何在使用hibernate时删除数据库中的一行?

public class User { 
@OneToMany(cascade={CascadeType.ALL) 
@JoinColumn(name="ID") 
private List<Address> userAddresses; 
.... 
.... 
} 

public class userAddress { 
@ManyToOne 
@JoinColumn(name="ID") 
private User usr; 
..... 
.... 
} 

如果我在用户表中删除一行将自动删除该行userAddress。如果没有,请让我知道如何声明属性自动删除。我听说过级联的事情,但我不知道正确的语法来声明它。

+1

中查找'orhpanRemoval'属性。 – mabi

+0

放入'JPA'标签! – ktaria

回答

0

尝试映射这样的:

public class User { 
     @OneToMany(mappedBy="usr", cascade={CascadeType.ALL}, orphanRemoval="true") 
     private List<Address> userAddresses; 
}    

public class userAddress { 
     @ManyToOne 
     @JoinColumn(name="ID") 
     private User usr; 
} 
+0

如果我先删除UserAddress记录,我可以删除用户记录。否则,不允许直接在用户表中删除记录。 –

+1

那么你想要做什么?您希望在删除用户记录时删除userAdresses? – Fortunato

+0

是的,我希望userAdresses在删除用户记录时被删除。 –

相关问题