我们如何在两个实体之间实现单向@OneToOne映射,并使用@JoinColumn应用于目标实体。
例如 我有两个实体:
@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
}
根据文件: http://docs.oracle.com/javaee/6/api/javax/persistence/JoinColumn.html
如果连接是使用外键映射策略进行OneToOne或ManyToOne映射,则外键列位于源实体的表中或可嵌入。
如果连接是使用外键映射策略进行单向OneToMany映射,则外键位于目标实体的表中。