我可以在HQL查询中选择null作为列值吗?

WSK*_*WSK 11 java orm hibernate hql

我需要一个包含三列的列表.第1列和第3列具有值,而第2列为空.我可以通过HQL查询来完成吗?

我需要这样的东西:

select id, null, name from MyClass
Run Code Online (Sandbox Code Playgroud)

MyClass以及底层表只有两个属性/列,即"id"和"name"

Bri*_*ing 15

另一个似乎有用的选项(在DB2,MySQL,Oracle和SQL Server上测试):

select id, cast(null as char), name from ...
Run Code Online (Sandbox Code Playgroud)

您可以继承Hibernate方言并使用自定义函数对其进行抽象:

registerFunction("always_null", 
  new SQLFunctionTemplate(Hibernate.STRING, "cast(null as char)"));
Run Code Online (Sandbox Code Playgroud)

然后在你的HQL中使用它:

select id, always_null(), name from ...
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以使用nullif()函数生成空值。

它接受两个参数。如果参数相等,它将返回null值。