Est-ce que hibernate convertit column != null
dans HQL en un column is null
dans SQL ?
C’est un opérateur binaire en veille prolongée que vous devriez utiliser
is not null
Regardez 14.10. Expressions
Non, vous devez utiliser is null
et is not null
en HQL.
Si vous voulez utiliser null
valeurs avec '='
ou '<>'
opérateurs, vous pouvez trouver le
très utile.
Petit exemple pour '='
: L'expression
WHERE t.field = :param
vous refactor comme ça
WHERE ((:param is null and t.field is null) or t.field = :param)
Vous pouvez maintenant définir le paramètre param
sur une valeur non nulle ou sur null
:
query.setParameter("param", "Hello World"); // Works
query.setParameter("param", null); // Works also
Voir aussi ce lien Gestion de la nullité conditionnelle dans HQL pour obtenir des conseils et astuces sur la gestion des comparaisons avec les valeurs nulles et non-nulles.