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

标签 java hibernate hql

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

UPDATE table SET field = null WHERE ....

最佳答案

您是指批量 HQL 更新吗?试试这个

UPDATE myEntity e SET e.myProperty = null WHERE ...

你也可以使用上面的参数化版本

UPDATE myEntity e SET e.myProperty = :param WHERE ...

在您的代码中:

int updatedEntities = session.createQuery(updateQueryHQL)
  .setString( "param", myValue ) // or .setString( "param", null )
  .executeUpdate();

参见 documentation了解详情。

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

关于java - 如何使用 HQL 将 'null' 放入列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1257736/

相关文章:

java - SolrJ 中缺少强制唯一键字段错误

hibernate - 如何在 JPA/Play 框架的 LIKE 子句中使用百分比?

java - Hibernate OneToMany SELECT 在实体映射中给出重复列

java - SQL语法异常 : could not execute query

java - 如何通过 JPA 从连接的第二个表中检索特定行

java - while循环中的递增操作(java)

Javax.persistence 在 TomEE 中不可用

java - 尝试对 DAO 类进行单元测试时,SessionFactory 没有 Autowiring

java - hibernate hql - 执行更新查询后返回更新的行ID列表

java - Java进度条不更新