我无法弄清楚如何在HQL中将其优化为一个查询。目前,我有以下2个HQL查询。他们都返回我想要的结果,我可以将这些结果合并到C#中,并做我需要的。但是,必须有一些方法来生成单个查询以返回所有结果。到目前为止我尝试的所有内容或者只生成错误或者给出了2个结果集的交集。我敢肯定我只是错过了一些小事。感谢。
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
答案 0 :(得分: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)