次の HQL を使用しています。
SELECT lo.id, lo.priority, COUNT(p.id)
FROM LoadingOrder AS lo LEFT OUTER JOIN lo.palettes AS p
WHERE SUBSTRING(p.space.id, 1, 1) = 'B'
問題は、パレットなしで注文を読み込んでいることが表示されないことです。WHERE 句がない場合、パレットのないロード オーダーが表示されます (最後の列は 0 です)。
私はすでに次のようなものを追加しようとしました:
SELECT lo.id, lo.priority, COUNT(p.id)
FROM LoadingOrder AS lo LEFT OUTER JOIN lo.palettes AS p
WHERE ((p.id IS NULL) OR (SUBSTRING(p.space.id, 1, 1) = 'B'))
しかし、それは役に立ちません(pまたはp.space.idがnullかどうかを確認するときも)。部分文字列で条件を設定し、パレットがない場合に結果を含める方法は?