3
タイトルは完全なストーリーを示すものではありません。メッセージをお読みください。特定の条件を満たすオブジェクトの数を数える
私には、大人と子供の2つのオブジェクトがあります。 ChildはbooleanフィールドisMaleを持ち、Adultへの参照を持ちます。大人は子供を参照していません。
息子を持たない大人を含む息子の数を列挙するクエリを作成したいと思います。私が試した:すべての人の息子を持っていない大人をピックアップしていません
select
adult.id as col_0_0_,
count(child.id) as col_1_0_,
... {omit properties}
from
Child child
right outer join
Adult adult
on child.parentId=adult.id
where
child.isMale = 'true'
group by
adult.id
クエリ1をSQLに変換
クエリ1
SELECT adult, COUNT(child) FROM Child child
RIGHT OUTER JOIN child.parent as adult
WHERE child.isMale='true'
GROUP BY adult
。
クエリ2:
SELECT adult, COUNT(child.isMale) FROM Child child
RIGHT OUTER JOIN child.parent as adult
GROUP BY adult
はSQLに変換します。
select
adult.id as col_0_0_,
count(child.id) as col_1_0_,
... {omit properties}
from
Child child
right outer join
Adult adult
on child.parentId=adult.id
group by
adult.id
クエリ2は、人の息子の右の数を持っていません。基本的に、COUNTはisMaleを評価しません。
クエリ1のwhere句は、息子のいない大人を除外しました。
このユースケースのHQLクエリまたはCriteriaクエリを作成するにはどうすればよいですか?
ありがとうございました。
パーフェクト、どうもありがとう! –