【发布时间】:2014-07-15 05:10:46
【问题描述】:
关系所有者的双向一对一映射是否需要unique=true?
@Entity
public class Customer {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String name;
@OneToOne(cascade={CascadeType.PERSIST})
@JoinColumn(name="passport_id", unique=true) //is unique=true required for bi-directional one-to-one mapping
private Passport passport;
public Passport getPassport() {
return passport;
}
}
@Entity
public class Passport {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name="passport_number")
private String passportNumber;
@OneToOne(mappedBy="passport")
private Customer customer;
public Customer getCustomer() {
return customer;
}
}
Hibernate 文档说 数据库中的 FK 列应该被限制为唯一以模拟一对一的多重性,但它没有在双向映射中添加 unique=true。
【问题讨论】:
标签: java hibernate jpa hibernate-mapping one-to-one