2011-12-07 16 views
0

これをHQLの1つのクエリに最適化する方法を知ることはできません。現在、以下の2つのHQLクエリがあります。彼らはどちらも私が望む結果を返し、私はそれらの結果をC#でマージして、私が必要とすることをすることができます。しかし、すべての結果を返すために単一のクエリを生成するには、何らかの方法が必要です。これまでに試したことはすべて、エラーを生成するか、2つの結果セットの交差を私に与えます。私はちょうど小さいものを欠いていると確信しています。ありがとう。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

関連する問題