2011-12-07 69 views
0

我只是無法弄清楚如何在HQL中將其優化爲一個查詢。目前,我有以下2個HQL查詢。他們都返回我想要的結果,並且我可以將這些結果合併到C#中並執行我所需的操作。但是,必須有一些方法來生成單個查詢以返回所有結果。到目前爲止,我所嘗試過的所有東西都只是產生了一個錯誤,或者給了我兩個結果集的交集。我確信我只是缺少一些小東西。謝謝。需要幫助合併2個HQL查詢

SELECT u FROM UserImpl u INNER JOIN u.Friends f WHERE f.State = :state AND f.Gender = :gender 
SELECT u FROM UserImpl u INNER JOIN u.Relatives r WHERE r.State = :state AND r.Gender = :gender 

回答

1

以下應該工作,我想:

SELECT u FROM UserImpl u 
LEFT JOIN u.Friends f 
LEFT JOIN u.Relatives r 
WHERE f.State = :state 
AND (f.Gender = :gender OR r.Gender = :gender) 
+0

完美。不管怎樣,我都必須嘗試每一種組合。謝謝! – heath