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

Java Hibernate查询语言(HQL)更新列表,java,spring,hibernate,sql-update,hql,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; 我还尝试: S

我正在使用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();
有没有办法让这一切顺利进行?
提前感谢

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

删除参数周围的Braves。它们应该由Hibernate添加,但仍然有相同的错误:(还有其他方法吗?我不认为我可以轻易地改变,用背景标记包围字段是一个选项,但长期来说,你需要在任何地方添加它们,所以重命名是更好的选择。。。