Включает ли hibernate преобразование column != null
в HQL в column is null
в SQL?
HQL "имеет значение null" и "!= Null" в столбце Oracle
Ответ 1
Это двоичный оператор в спящем режиме, вы должны использовать
is not null
Посмотрите 14.10. Выражения
Ответ 2
Нет. Вы должны использовать is null
и is not null
в HQL.
Ответ 3
Если вы хотите использовать значения null
с операторами '='
или '<>'
, вы можете найти
очень полезно.
Краткий пример для '='
: выражение
WHERE t.field = :param
вы так реорганизуете
WHERE ((:param is null and t.field is null) or t.field = :param)
Теперь вы можете установить параметр param
либо на некоторое ненулевое значение, либо на null
:
query.setParameter("param", "Hello World"); // Works
query.setParameter("param", null); // Works also
Ответ 4
Нет. См. Также эту ссылку Обработка условного нуля в HQL для получения советов и трюков о том, как обрабатывать сравнения с нулевыми и ненулевыми значениями.