【发布时间】:2012-06-13 16:12:21
【问题描述】:
下面两个声明到底有什么区别
B是拥有方
@Entity
class A {
@Id int id;
@OneToOne
B b;
}
@Entity
class B {
@Id int id;
@OneToOne(mappedBy="b")
A a;
}
A 是拥有方
@Entity
class A {
@Id int id;
@OneToOne(mappedBy="a")
B b;
}
@Entity
class B {
@Id int id;
@OneToOne
A a;
}
在“普通 SQL”中考虑这一点,我认为这与拥有两个表相同,每个表都有另一个表的外键。我不明白的是,指定哪个实体是拥有方的效果是什么,即使用“mappedBy”属性。这实际上实现了什么,因为我不相信普通 SQL 中存在等价物。
【问题讨论】:
-
您是否检查过 A 表和 B 表在这两种情况下都相互具有 FK?
标签: java hibernate jpa persistence jpql