11.4.5. WITH 節について
HQL は
WITH
節を定義し、結合条件を限定します。これは HQL に固有の機能で、JPQL はこの機能を定義しません。
例11.4 with-clause 結合の例
select distinct c from Customer c left join c.orders o with o.value > 5000.00
生成された SQL では、
with clause
の条件が生成された SQL の on clause
の一部となりますが、本項の他のクエリでは HQL/JPQL の条件が生成された SQL の where clause
の一部となることが重要な違いです。この例に特有の違いは重要ではないでしょう。さらに複雑なクエリでは、with clause
が必要になることがあります。
明示的な結合は、アソシエーションまたはコンポーネント/埋め込み属性を参照することがあります。コンポーネント/埋め込み属性では、結合は単純に論理的で、物理 (SQL) 結合へ相関がありません。