Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
12.4.14. Comparaisons relationnelles
Les comparaisons impliquent l'un des opérateurs de comparaison - =, >, >=, <, <=, <>. HQL définit également != comme opérateur de comparaison synonyme à <>. Les opérandes doivent être du même type.
Exemple 12.17. Exemples de comparaisons relationnelles
// numeric comparison select c from Customer c where c.chiefExecutive.age < 30 // string comparison select c from Customer c where c.name = 'Acme' // datetime comparison select c from Customer c where c.inceptionDate < {d '2000-01-01'} // enum comparison select c from Customer c where c.chiefExecutive.gender = com.acme.Gender.MALE // boolean comparison select c from Customer c where c.sendEmail = true // entity type comparison select p from Payment p where type(p) = WireTransferPayment // entity value comparison select c from Customer c where c.chiefExecutive = c.chiefTechnologist
Les comparaison peuvent également impliquer des qualificateurs de sous-requêtes -
ALL
, ANY
, SOME
. SOME
et ANY
sont synonymes.
Le qualificateur
ALL
passe à true si la comparaison est true pour toutes les valeurs qui se trouvent dans le résultat de la sous-requête. Passe à false si le résultat de la sous-requête est vide.
Exemple 12.18. Exemple de qualificateur de comparaison de sous-requête ALL
// select all players that scored at least 3 points // in every game. select p from Player p where 3 > all ( select spg.points from StatsPerGame spg where spg.player = p )
Le qualificateur
ANY
/SOME
passe à true si la comparaison est true pour toutes les valeurs qui se trouvent dans le résultat de la sous-requête. Passe à false si le résultat de la sous-requête est vide.