Hibernate 中的自引用一对一映射
Posted
技术标签:
【中文标题】Hibernate 中的自引用一对一映射【英文标题】:Self-Reference One-to-One mapping in Hibernate 【发布时间】:2011-09-06 18:08:17 【问题描述】:我有一个 A 类,它的属性类型指示它是收据还是交货。收据可以映射到单个交货,反之亦然。现在考虑收据交易和交付交易是兄弟。 所以类 A 有一个 A 类型的 sibling。“A”和它的兄弟有一个 一对一的关系,如上所述。
Class A
private A sibling;
<hibernate-mapping>
<class name="A" table="A">
<id name="Id" type="java.lang.Integer" column="id">
<generator class="native"></generator>
</id>
<one-to-one name="sibling" class="A" lazy="proxy" />
</class>
</hibernate-mapping>
我无法找到一种方法来创建自引用的一对一映射。
【问题讨论】:
请问豆子长什么样子 【参考方案1】:使用many-to-one
单向关联。请参阅休眠参考文档中的Unidirectional associations。
<hibernate-mapping>
<class name="A" table="A">
<id name="Id" type="java.lang.Integer" column="id">
<generator class="native"></generator>
</id>
<many-to-one name="sibling" class="A" cascade="all" />
</class>
</hibernate-mapping>
您可以阅读这些答案以了解更多信息
Why use many-to-one to represent a one-to-one? How to stop Hibernate from eagerly fetching many-to-one associated object【讨论】:
以上是关于Hibernate 中的自引用一对一映射的主要内容,如果未能解决你的问题,请参考以下文章
org.hibernate.AnnotationException:referencedColumnNames 引用未映射到单个属性