我正在使用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保留字。重命名您的专栏

10-05 22:41
查看更多