2010-09-28 36 views
2
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调试器我可以看到使用的字符串,它工作正常时,你喜欢多行语句/去...?java和jboss,带SQL服务器。使用实体管理器在本地查询中插入多条语句,但不工作;但在sql工作

任何建议感激地收到(是的,我知道的StringBuilder等等等等),我得到的错误是:

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

编辑 原来插不被EntityManager的和查询类支持。所以我必须使用准备好的声明或坚持对象。

回答

2

从MSSQL文档:“GO不是Transact-SQL语句;它是由sqlcmd和osql实用程序和SQL Server Management Studio代码编辑器识别的命令。”

这就是为什么它可以在SSMS中工作,而不是直接发送到数据库时。只需从INSERT语句中完全删除它。

+0

谢谢,我正要尝试一下。 – NimChimpsky 2010-09-28 13:09:18

+0

它解决了一个问题。但是,getresultlist不适用于插入语句...并且executeUpdate仅适用于根据api更新或删除? – NimChimpsky 2010-09-28 13:36:26

相关问题