Jan*_*nne 10 java mysql hibernate native
我想知道是否可以SQLQuery#executeUpdate()在Hibernate(3.2)中使用一次调用执行几个以分号分隔的SQL更新查询.
我有包含多个更新的字符串,如下所示:
String statements = "UPDATE Foo SET bar=1*30.00 WHERE baz=1;
UPDATE Foo SET bar=2*45.50 WHERE baz=2;...";
Run Code Online (Sandbox Code Playgroud)
我正在努力做到
Query query = session.createSQLQuery(statements);
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
但是不断收到以下错误
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
Run Code Online (Sandbox Code Playgroud)
如果我执行statements手工的内容我没有错误,所以我假设多个分号分隔的查询在Hibernate或JDBC的某处造成麻烦.
分割statements字符串并createSQLQuery(statement).executeUpdate()为每一行单独执行是否更好?
一种替代方法是使用CASE语句。例如:
UPDATE Foo
SET bar =
CASE baz
WHEN 1 THEN 'X'
WHEN 2 THEN 'Y'
END CASE
WHERE baz in (1,2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8651 次 |
| 最近记录: |