问题描述
|
使用Hibernate,我有以下课程:
public class Person {
@ManyToMany(fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
@JoinTable(name = \"person_address\",joinColumns = { @JoinColumn(name = \"person_id\") },inverseJoinColumns = { @JoinColumn(name = \"address_id\") })
public List<Address> getAddresses() {
return addresses;
}
}
public class Address {
...
@ManyToMany(mappedBy=\"addresses\",fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
public List<Person> getPersons() {
return persons;
}
}
我的问题是:
是否可以删除地址和人之间关系的元素,地址的\“ orphans \”元素也将被删除。换句话说,我不想拥有未链接到某个人的地址。
谢谢,
渣。
解决方法
你为什么要这么做?您可以删除任何实体(人或地址),然后Hibernate将根据您定义的注释确保一致性。
在这种情况下,手动删除不同表之间的链接是不必要的风险。
,不,不可能。 Hibernate不为多对多关系提供孤立删除功能。
,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN
可用于删除孤儿。