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

时间:2016-12-07 18:09:23

标签: java spring hibernate sql-update hql

我正在使用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();

任何想法如何使这项工作? 提前致谢

1 个答案:

答案 0 :(得分:1)

Status是一个MySQL保留字。将列重命名为其他内容