2012-07-11 38 views
0

只是一個簡單的問題。想要連接兩個表A和B,其中a_fk是A的表外鍵,而b_pr是B的主鍵。 A和B之間的關係是一對一的雙向關係。 A和B對應於A和B表的實體類。
我有jpql查詢"select b from A a, B b where a.a_fk=b.b_pr"; Eclipse無法編譯,說列a_fk不存在。 我已經創建了一個Native sql查詢並檢查了相同的sql語句,但是我已經將它轉換爲正確的sql。這工作。JPQL找不到外鍵

問題:JPQL不支持外鍵?

回答

0

JPQL使用實體和實體之間的關聯。它不使用表,列和外鍵。

如果您想選擇其中有一個B中的所有作爲,查詢

select a from A a inner join a.b 

如果您想選擇所有與他們B

select a from A a left join fetch a.b 

閱讀一本關於JPA,因爲您還沒有掌握有關JPA的基本概念。

+0

是的,我是新來的。任何特殊的書籍JB Nizet? – alex 2012-07-11 17:42:12

+1

我沒有任何建議。不過,Hibernate文檔非常易讀。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/ – 2012-07-11 17:49:29