我有这种情况:Hibernate的一对一与FK映射
Class A {
@Id
Integer id;
@OneToOne
@JoinColumn(name = "b.a_id", referencedColumnName = "id")
B b;
}
Class B {
@Id
Integer id;
Integer a_id;
}
的FK在B表。
运行过程中出现下面的查询不起作用:
SELECT A1 FROM A A1 LEFT JOIN FETCH A1.b WHERE A1.id = 6;
我没有得到B.
而且,如果我让Hibernate生成数据库,它设置一个FK在A表,但我想要在B桌上。 不应该有双向映射。
请帮忙,我该怎么做?
不,它不起作用。它产生这个连接:左外连接,其中A.a_id = B.id.这是颠倒 – 2014-11-03 12:42:26
@Idob奇怪,根据[文档](http://en.wikibooks.org/wiki/Java_Persistence/OneToOne#Target_Foreign_Keys.2C_Primary_Key_Join_Columns.2C_Cascade_Primary_Keys)和[这个答案](http://stackoverflow.com/ a/26590407/4074715),它应该工作 – 2014-11-03 12:50:53
@Idob你不需要在'B'中有'a_id'作为字段,也许这就是它不起作用的原因。如果没有它,当然,你不需要为其他原因映射它。 – 2014-11-03 13:08:30