如何使用HQL将'null'放入列中?

7 java hibernate hql

如何构建有效的HQL字符串,相当于

UPDATE表SET字段= null WHERE ....

Chs*_*y76 4

您的意思是批量 HQL 更新吗?尝试这个

UPDATE myEntity e SET e.myProperty = null WHERE ...
Run Code Online (Sandbox Code Playgroud)

您还可以使用上述的参数化版本

UPDATE myEntity e SET e.myProperty = :param WHERE ...
Run Code Online (Sandbox Code Playgroud)

在你的代码中:

int updatedEntities = session.createQuery(updateQueryHQL)
  .setString( "param", myValue ) // or .setString( "param", null )
  .executeUpdate();
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档。

如果您不进行批量更新,则应该将属性设置为 NULL 并正常保留实体。