HQL "имеет значение null" и "! = Null" в столбце Oracle - PullRequest
53 голосов
/ 21 февраля 2011

Преобразует ли hibernate column != null в HQL в column is null в SQL ?

Ответы [ 4 ]

91 голосов
/ 21 февраля 2011

Это бинарный оператор в спящем режиме, который вы должны использовать

is not null

Взгляните на 14.10. Выражения

34 голосов
/ 21 февраля 2011

Нет. Вы должны использовать is null и is not null в HQL.

7 голосов
/ 15 апреля 2016

Если вы хотите использовать null значения с '=' или '<>' операторами, вы можете найти

ответ от @egallardo hier

очень полезно.

Краткий пример для '=': выражение

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
1 голос
/ 06 февраля 2014

Нет. См. Также эту ссылку Обработка условного нуля в HQL , где приведены советы и рекомендации по обработке сравнений как с нулевыми, так и с ненулевыми значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...