gpt4 book ai didi

java - 与 JPA 的自连接关系

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:33 25 4
gpt4 key购买 nike

我想使用 JPA 创建一个表 Person,要求 Person 应该有一个 Person 类型的字段,以表示一个灵魂伴侣。人可以有灵魂伴侣(另一个人),但不是强制性的。

我对如何进行映射感到非常困惑。我不确定关键字 this 是否可以帮助我。

我想了解什么是最好的方法。这就是我所做的,但我认为是不正确的。谁能帮我改正并解释一下这种关系应该如何运作?

使用注解的版本

   //DEFINE OneToOne Relationships (SELF JOIN-No mandatory)
@Entity class Person {
@Id
private long identificator;
private String name;
@OneToOne(targetEntity=Person.class mappedby="this")
private Person soulmate;
}

使用部署描述符的版本

<persistence-unit-metadata>
<entity-mappings>
<entityclass = “packgagename.Person”>
<attributes>
<id name="identificator"/>
<column name="name"/>
<one-to-one name="soulmate" targetEntity="packgagename.Person" mappedby="this"/>
</attributes>
</entityclass>
</persistence-unit-metadata>

最佳答案

我认为这应该可以解决问题:

@OneToOne(optional = true)
@JoinColumn(name = "SoulmateId")
private Person soulmate;

关于java - 与 JPA 的自连接关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599540/

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