0

我有一个场景,我需要删除一个父实体,这样做我需要取消与父实体关联的引用。

例如,我有两个表格/实体人员和地址。人是父母,地址是孩子(一对多)。现在,当我删除 Person 时,我需要取消 Address 表中的人员引用。

我们是否有任何预定义的注释来完成这项工作。

非常感谢任何帮助/建议。

谢谢。

4

2 回答 2

0

我看到的最简单的方法是在删除后刷新子实体。由于您的关系是双向的,否则您可以使用父级上的 @PreRemove 方法自动管理它(将所有子级的父级引用设置为 null)。

恕我直言,这里误用了瞬态这个词,瞬态意味着该属性不会被持久化,删除引用应该更合适。

于 2013-04-09T12:54:09.463 回答
0

您必须手动完成:

@Entity
public class Person {
    ...
    @OneToMany(mappedBy="person")
    public List<Address> addresses;  
    ...
}

@Entity
public class Address {
    ...
    @ManyToOne
    public Person person;
    ...
}

for (Address address: person.addresses) {
    address.person = null;  
}
session.delete(person);
于 2013-04-09T16:12:03.547 回答