具有唯一子表关系的OneToOne映射

时间:2014-02-12 14:43:57

标签: java hibernate jpa

我想将表A与具有OneToOne关系的表B链接,表B在表A的一列上保存外键。问题是表B实际上保持一对多的关系,因为存储旧数据。表B中只有一个A实例,其中B.dt_update为null。简而言之,我有一对多,但通过限制限制为1到0或1。

我应该如何使用JPA注释设计它?

大致我有(当然不工作,因为它不是一对一的情况)

@Entity
class A{
....
    @OneToOne(mappedBy="a", fetch=FetchType.EAGER)
    B b;
...
}

-

@Entity
class B{
...
    @OneToOne
    @JoinColumn(name="id")
    private A a;

...
}

1 个答案:

答案 0 :(得分:0)

根据Hibernate documentation,onetoOne有点棘手,最好使用unique = true来使用Many to One。

@Entity
class A{
....
    @OneToOne(mappedBy="a", fetch=FetchType.EAGER)
    @JoinColumn(name ="id")
    B b;
...
}

@Entity
class B{
...
    @ManyToOne    
    @JoinColumn(name ="id",unique="true")
    private A a;

...
}