Java и JBoss, с SQL Server. Mulitple Insert заявления в нативном запросе с использованием Entitismanager, не работает; Но работает работает в SQL

StackOverflow https://stackoverflow.com/questions/3812529

Вопрос

String myQuery1  = "insert into mytable(mycol) values(myval) \ngo";
String myQuery2  = "insert into mytable(mycol) values(myval2) \ngo";
String myQuery = myQuery1 + myQuery2;

Query query = myEntityManager.createNativeQuery(myQuery);
List<?> insertResultList = queryInsertDefaults.getResultList();

Использование отладчика Eclpise я могу видеть используемую строку, она работает нормально, когда я копирую и вставю в студию по управлению SQL Server - поэтому я догадаюсь, что есть что с учетом сущностей, который не любит несколько линейных утверждений / Go ... ?

Любые совет с благодарностью получил (да, я знаю о StringBuilder etc etc), а ошибка, которую я получаю:

 SQL Error: 102, SQLState: S0001
 Incorrect syntax near 'go'.

РЕДАКТИРОВАТЬОказывается вставка не поддерживается EntityManager и Query Class. Поэтому я должен использовать либо подготовленный оператор, либо сохранить объект.

Это было полезно?

Решение

Из документации MSSQL: «Go - это не оператор Transact-SQL; это команда, распознаваемая утилитами SQLCMD и OSQL и редактором студийного кода SQL Server Server.

Вот почему он работает в SSMS, но не при отправке «напрямую» в базу данных. Просто удалите его из ваших заявлений вставки полностью.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top