Java 目标实体中带有joincolumn的单向OneToOne
我们如何实现两个实体之间的单向@OneToOne映射,并在目标实体上应用@JoinColumn 例如。 我有两个实体:Java 目标实体中带有joincolumn的单向OneToOne,java,jpa,hibernate-mapping,Java,Jpa,Hibernate Mapping,我们如何实现两个实体之间的单向@OneToOne映射,并在目标实体上应用@JoinColumn 例如。 我有两个实体: @Entity public class Person { // Attaches column in the source entity i.e. Person @OneToOne @JoinColumn(name = "Person_ID") private Address address; //W
@Entity
public class Person {
// Attaches column in the source entity i.e. Person
@OneToOne
@JoinColumn(name = "Person_ID")
private Address address;
//Works for @oneToMany, attaches column in target entity i.e. Address
@OneToMany
@JoinColumn(name = "Person_ID")
private Set<Address> addresses;
}
@Entity
public class Address {
//list of columns
}
@实体
公共阶层人士{
//将列附加到源实体中,即Person
@奥内托内
@JoinColumn(name=“Person\u ID”)
私人地址;
//适用于@oneToMany,在目标实体(即地址)中附加列
@独身癖
@JoinColumn(name=“Person\u ID”)
专用设备
如果联接用于使用外键映射策略的一对一或多对一映射,则外键列位于源实体或可嵌入的表中
如果联接用于使用外键映射策略的单向OneToMany映射,外键在目标实体的表中我不理解您在JPA中提供这两个选项的问题。您有OneToMany映射,创建只返回单个实例的访问器,以及您的database约束可以配置为使“person_id”唯一。或者您正在查看JPA之外的内容吗?我想要OneToOne映射,寻找可以将外键列附加到目标实体的选项(在OneToMany中发生)…无论哪种方式,我都可以保留地址实体中的Person引用。让具有访问器的OneToMany返回单个实例对我来说不是一个好主意。您是否找到了解决此问题的正确方法?我遇到了相同的问题,我看不出JPA不允许定义此类映射的原因(即目标实体表中带有joincolumn的@OneToOne),但我感觉可能有一个。这是一个很好的问题