2010-09-28 46 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

相關問題