Hibernate 文档 (2.2.5.1 )。(一对一)介绍以下示例:
@Entity
public class Customer implements Serializable {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="passport_fk")
public Passport getPassport() {
...
}
@Entity
public class Passport implements Serializable {
@OneToOne(mappedBy = "passport")
public Customer getOwner() {
...
} 据我所知,Customer与Passport有一对一的关系,其中Customer是所有者,即负责Passport的级联更新。mappedBy in Passport表示它与Customer有一对一的关系,但它不负责Customer的级联更新。
Customer对Passport有一个外键约束,反之亦然,Passport到Customer也是如此。
@JoinColumn(name="passport_fk") of Customer的含义是什么?passport in mappedBy of Passport怎么样?它们是否是表示各自外键的表列?
发布于 2014-01-24 16:03:19
What is the meaning of the @JoinColumn(name="passport_fk") of Customer?这意味着passport_fk字段将在Customer表中创建,因为它属于这里,因此该表被视为关系的所有者(尽管如此)。
How about passport in the mappedBy of Passport因为这是用mappedBy注释的,所以它表明这不是所有者,所有者是Customer (注释的字段)。name属性告诉Hibernate在哪里查找有关FK映射的信息(在Customer内部有一个getPassport方法)。将不会在Passport中创建其他字段。
https://stackoverflow.com/questions/21336883
复制相似问题