Hibernate 查询语言 (HQL) 更新列表

Hibernate Query Language (HQL) Update list

我正在使用 Hibernate,我想进行批量更新,更改 ID 列表中所有对象的状态。 所以我尝试了:

String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (:idList)"

导致异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;

我也试过:

String update = "UPDATE Foo as foo SET foo.status = :status WHERE foo.id in (SELECT id FROM Foo WHERE id in (:idList))"

这导致了同样的异常。

我正在插入这样的参数:

StatelessSession ss = sessionFactory.openStatelessSession();
Query query = ss.createQuery(update);
query.setParameter("status", status);
query.setParameterList("idList", ids);
query.executeUpdate();

关于如何使这项工作有任何想法吗? 提前致谢

Status 是 MySQL 保留字。将您的列重命名为其他名称