gpt4 book ai didi

java - 如何用 Hibernate 映射这些类?

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:24 25 4
gpt4 key购买 nike

假设我有这两个类:

class A{

B ref1 = null; //Can both be null
B ref2 = null;

}

class B{

..
}

我省略了 ref1 和 ref2 的 getter 和 setter。当然,我想添加 ids……无论如何,我想要的是让 hibernate 处理这两个引用的自动持久化……并自动删除 B 对象。我想在 A 和 B 的每个属性 ref* 之间使用一对一。但我迷路了 :) 你能提出建议吗?我想使用 SchemaExport。

谢谢。

最佳答案

您可以通过使用 OneToOne-Annotation 的级联属性来实现此行为。所以使用 Hibernate Annotations/JPA Annotations 你会有类似的东西:

@Entity
public class AClass{
@Id
@GeneratedValue
private long id;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_1;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_2;
}

@Entity
public class BClass{
private String someField;
}

在 XML 映射中,关联应该看起来像这样:

<hibernate-mapping>
<class name="AClass">
<one-to-one cascade="all,delete-orphans" name="b_1" class="BClass" />
<one-to-one cascade="all,delete-orphans" name="b_2" class="BClass" />
</class>
</hibernate-mapping>

这应该为您提供所需的行为,将持久性操作级联到 BClass 上,并从持久层中删除任何未引用的 BClass 对象。

玩得开心!

弗兰克

关于java - 如何用 Hibernate 映射这些类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com