我有這種情況: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