我想知道在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中可能会出现问题。是否最好只需拆分statements
字符串,并为每行执行createSQLQuery(statement).executeUpdate()
?