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. Lapattern_value
est un modèle qui tente de correspondre à l'expression de chaînestring_expression
. Tout comme pour l'expresion «like» SQL, le modèle oupattern_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èreescape
optionnel est utilisé pour spécifier un caractère d'échappement en combinaison à ce qui est impliqué par "_" ou "%" dans le modèle oupattern_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'