Hibernate Mappedby示例

Kev*_*ith 4 java hibernate

Hibernate Docs(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() {
    ...
}   
Run Code Online (Sandbox Code Playgroud)

据我了解,Customer有一个一比一的关系Passport,这里Customer是所有者,即负责级联更新Passport.在mappedByPassport表明它有一个一对一的关系Customer,但它是不负责级联更新Customer.

Customer有一个外键约束Passport的,以及反之亦然PassportCustomer.

是什么意思@JoinColumn(name="passport_fk")Customer?如何passportmappedByPassport?它们是表示各自外键的表列吗?

Eug*_*ene 7

What is the meaning of the @JoinColumn(name="passport_fk") of Customer?
Run Code Online (Sandbox Code Playgroud)

这意味着将在Customer表中创建passport_fk字段,因为它属于此处,此表被视为关系的所有者(尽管您似乎得到了这一点).

 How about passport in the mappedBy of Passport
Run Code Online (Sandbox Code Playgroud)

由于这是使用mappedBy注释的,因此它表明这不是所有者,并且所有者是Customer(被注释的字段).name属性告诉Hibernate在哪里可以找到有关FK映射的信息(在Customer内部有一个getPassport方法).在Passport中不会创建其他字段.