Мне интересно, можно ли выполнить несколько запросов обновления 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 ()
индивидуально для каждой строки?