在Oracle列上,HQL“null”和“!= null”
hibernate转换HQL的 column != null
column is null
SQL中 column is null
?
这是你应该使用的hibernate的二元运算符
is not null
看看14.10。 expression式
is not null
。您必须使用is null
并且在HQL中is not null
。
如果你想用'='
或'<>'
运算符来使用null
值,你可以find
来自@egallardo hier的回答
很有用。
'='
简短例子:expression式
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
否。另请参阅此链接在HQL中处理条件空值,以获取有关如何处理使用空值和非空值进行比较的提示和技巧。