在Hibernate中取消瞬时引用

在Hibernate中取消瞬时引用,hibernate,transient,Hibernate,Transient,我有一个场景,我需要删除父实体,在这样做的过程中,我需要取消与父实体关联的引用 e、 g.我有两个表/实体,个人和地址。 人是父母,地址是孩子(一对多)。 现在,当我删除Person时,我需要将Address表中的Person引用置空 我们是否有任何预定义的注释来完成这项工作 非常感谢您的帮助/建议 谢谢。我看到的最简单的方法是在删除后刷新子实体。 由于您的关系是双向的,因此您可以在父对象上使用@PreRemove方法自动管理此关系(将所有子对象的父对象引用设置为null) 如果此处误用了tra

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

e、 g.我有两个表/实体,个人和地址。 人是父母,地址是孩子(一对多)。 现在,当我删除Person时,我需要将Address表中的Person引用置空

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

非常感谢您的帮助/建议


谢谢。

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


如果此处误用了transient一词,transient意味着该属性将不会被持久化,那么删除引用应该更合适。

您必须手动执行此操作:

@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);
@实体
公共阶层人士{
...
@OneToMany(mappedBy=“person”)
公开名单地址;
...
}
@实体
公共课堂演讲{
...
@许多酮
公众人物;
...
}
收件人(地址:个人地址){
address.person=null;
}
删除(人);
在JPA中,您必须手动执行此操作。我强烈怀疑Hibernate能否自动完成这项工作。还是很好奇。