在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中处理条件空值,以获取有关如何处理使用空值和非空值进行比较的提示和技巧。