【发布时间】:2011-10-07 17:52:45
【问题描述】:
我想知道是否可以在 Hibernate (3.2) 中使用一个 SQLQuery#executeUpdate() 调用来执行多个以分号分隔的 SQL 更新查询。
我的字符串包含多个这样的更新:
String statements = "UPDATE Foo SET bar=1*30.00 WHERE baz=1;
UPDATE Foo SET bar=2*45.50 WHERE baz=2;...";
我正在努力
Query query = session.createSQLQuery(statements);
query.executeUpdate();
但不断出现以下错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near
'UPDATE Foo SET bar=Y WHERE ' at line 3
如果我手动执行statements 的内容,我不会收到任何错误,所以我假设多个分号分隔的查询在 Hibernate 或 JDBC 的某个地方造成了问题。
只拆分statementsstring 并为每一行单独执行createSQLQuery(statement).executeUpdate() 会更好吗?
【问题讨论】:
-
示例代码有点不对劲,实际上我是在计算一些金额,不加引号应该没问题吧?
标签: java mysql hibernate native