java如何通过级联来级联@ManyToOne双向关系?
我想自动持久化/合并人的Address
实体。一旦创建,任何人都应该可以更新它们,但如果删除了Person
,则不会将其删除
//each person can only have one address
@Entity
public class Person {
@ManyToOne
private Address address;
}
//one address can be assigned to multiple persons (eg family members)
@Entity
public class Address {
@OneToMany
private List<Person> persons;
}
问题:
- 我应该如何为这个需求编写
cascade
注释李> - 我将如何创建这些实体
person.setAddress(address)
还是address.getPersons().add(person)
李>
# 1 楼答案
cascade=CascadeType.REMOVE
避免删除Address
如果删除了Person
:你可以看看this article它解释了在相同情况下的相同行为,它说:
更多信息,请查看here
# 2 楼答案
我想这两个网站上的
@Cascade({CascadeType.MERGE})
都是你想要的我可能会创建并持久化一个没有地址的
Person
,然后在Address
实体中有如下内容:希望这有帮助