gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:09:14 24 4
gpt4 key购买 nike

我正在使用 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 的保留字。将您的列重命名为其他名称

关于java - Hibernate 查询语言 (HQL) 更新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41024401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com