12.4.14. Comparaisons relationnelles
Les comparaison impliquent un des opérateurs de comparaison - =, >, >=, <, <=, <>]>. HQL also defines <![CDATA[!= comme opérateur de comparaison synonyme de <>. 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.