Выполнение нескольких собственных запросов за один раз

Мне интересно, можно ли выполнить несколько запросов обновления SQL, разделенных точкой с запятой, с помощью одного вызова SQLQuery # executeUpdate () в Hibernate (3.2).

У меня есть строка, содержащая несколько обновлений, например эта:

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

Если я выполняю содержимое операторов вручную, я ошибок нет, поэтому я предполагаю, что несколько запросов, разделенных точкой с запятой, вызывают проблемы где-то в Hibernate или JDBC.

Не лучше ли просто разделить строку операторов и выполнить createSQLQuery (statement) .executeUpdate () индивидуально для каждой строки?

10
задан Janne 18 July 2011 в 14:33
поделиться