2014-03-03 49 views
3

我有兩個JPA實體Customer和Address。地址有一個鏈接到客戶,但客戶沒有鏈接到地址。我知道這聽起來很奇怪,儘管目前我們無法改變這一點。帶有可能的第二個鏈接實體的JPQL結果列表

在數據庫中,我們有100個客戶和10個地址鏈接到客戶。我想運行一個查詢,該查詢返回所有100個客戶的列表,並在第二列(如果可用)中顯示該地址。

我能夠做到這樣的查詢:從客戶C

SELECT C,A,地址一個WHERE a.customerId = c.id;

這將返回一個列表,因爲我希望有,但只有10個客戶實際上有一個地址。

在JPQL中有沒有辦法獲得100個客戶的列表,並在第二個數組中定位地址,如果不存在,則返回null?

回答

1

您需要一個左外連接。喜歡的東西

SELECT Customer.id, Customer.name, Address.street, ... from Customer LEFT OUTER JOIN Address on address.customer_id = customer.id; 

說明如何使用JPA你在這裏找到:

How to create a JPA query with LEFT OUTER JOIN

問候,

邁克

相關問題