12.4.5. La clause WITH

HQL définit une clause WITH pour qualifier les conditions de jointure. Cela est spécifique à HQL. JPQL ne définit pas cette fonctionnalité.

Exemple 12.4. Exemple de jointure de with-clause

select distinct c
from Customer c
    left join c.orders o
        with o.value > 5000.00
La grande différence est que, dans le SQL généré, les conditions de with clause font partie de on clause dans le SQL généré contrairement aux autres requêtes dans cette section où les conditions HQL/JPQL font partie de la where clause dans le SQL généré. La différence dans cet exemple en particulier n'est sûrement pas très importante. La with clause est quelques fois nécessaire pour des requêtes plus compliquées.
Les jointures explicites peuvent faire référence à des attributs d'association ou de composant/intégrés. Dans le cas d'attributs de composant/intégrés, la jointure est tout simplement logique et n'est pas en corrélation avec une jointure (SQL) physique.