Oracle列上的HQL"为null"和"!= null"

Eri*_*c V 53 oracle null hibernate

是否冬眠转换column != nullHQLcolumn is nullSQL

Edu*_*ard 91

那是你应该使用的hibernate中的二元运算符

is not null
Run Code Online (Sandbox Code Playgroud)

看看14.10.表达式


JB *_*zet 35

不,你必须使用is null,并is not null在HQL.


Bor*_*ski 7

如果你想使用null带有值'=''<>'运算符可以找到

来自@egallardo hier的回答

很有用.

简短的例子'=':表达式

WHERE t.field = :param
Run Code Online (Sandbox Code Playgroud)

你像这样重构

WHERE ((:param is null and t.field is null) or t.field = :param)
Run Code Online (Sandbox Code Playgroud)

现在您可以将参数设置param为某个非空值或者null:

query.setParameter("param", "Hello World"); // Works
query.setParameter("param", null);          // Works also
Run Code Online (Sandbox Code Playgroud)