Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

12.4.13. Prédicats HQL

Les prédicats sont à la base des expressions de recherche, la clause «where», la clause «having». Ce sont des expressions qui résolvent une valeur de vérité, comme TRUE ou FALSE, bien que les comparaison booléènnes comportant des NULL résolvent les UNKNOWN.

Prédicats HQL

Prédicat Nullness
Cherchez une valeur nulle et sans effet. Peut s'appliquer à des références d'attributs de base, à des références d'entité et à des paramètres. De plus, HQL permet une application à des types de composants/intégrables.

Exemple 12.14. Exemples de vérification de Nullness

// select everyone with an associated address
select p
from Person p
where p.address is not null

// select everyone without an associated address
select p
from Person p
where p.address is null
Prédicat Like
Procède à une comparaison d'équivalence entre des valeurs de chaîne. La syntaxe est la suivante :
like_expression ::=
   string_expression
   [NOT] LIKE pattern_value
   [ESCAPE escape_character]
Les sémantiques suivent l'expression Like SQL. La pattern_value est un modèle qui tente de correspondre à l'expression de chaîne string_expression. Tout comme pour l'expresion «like» SQL, le modèle ou pattern_value peut utiliser "_" et "%" comme caractères génériques. Les significations sont les mêmes. "_" correspond à n'importe quel caractère unique. "%" correspond à un certain nombre de caractères.
Le caractère escape optionnel est utilisé pour spécifier un caractère d'échappement en combinaison à ce qui est impliqué par "_" ou "%" dans le modèle ou pattern_value. Ceci est utile quand on doit chercher des modèles contenant des "_" ou des "%".

Exemple 12.15. Exemples de prédicats «Like»

select p
from Person p
where p.name like '%Schmidt'

select p
from Person p
where p.name not like 'Jingleheimmer%'

// find any with name starting with "sp_"
select sp
from StoredProcedureMetadata sp
where sp.name like 'sp|_%' escape '|'
Prédicat Between
Ressemble à l'expression SQL BETWEEN. Détermine qu'une valeur est entre 2 autres valeurs. Tous les opérandes doivent avoir des types comparables.

Exemple 12.16. Exemples de prédicats «Between»

select p
from Customer c
    join c.paymentHistory p
where c.id = 123
  and index(p) between 0 and 9

select c
from Customer c
where c.president.dateOfBirth
        between {d '1945-01-01'}
            and {d '1965-01-01'}

select o
from Order o
where o.total between 500 and 5000

select p
from Person p
where p.name between 'A' and 'E'