2
我有,我想通過Hibernate運行原生SQL查詢,但將引發一個錯誤:休眠投擲:意外的標記「」之後發現「」
org.hibernate.exception.SQLGrammarException:
could not execute native bulk manipulation query
Caused by:
com.ibm.db2.jcc.am.SqlSyntaxErrorException: An unexpected token ""
was found following "". Expected tokens may include: "NQ_EXE_ID = 12345"
我運行進行更新的代碼:
SQLQuery updateQuery = getSession().createSQLQuery(updateSql);
System.out.println(updateQuery.getQueryString());
updateQuery.executeUpdate();
在調試期間,我可以在對象的SQLQuery看到裏面和SQL是:(它運行在DB2細)
UPDATE some_table SET DEST_FLDR = 'some_value' ,
LST_CHG_TMS = CURRENT TIMESTAMP
WHERE SUB_RUN_ID = 111111
AND INQ_EXE_ID = 12345 ;
如果我手動運行由上面的代碼生成的sql,它將執行正常。但是,當我嘗試通過休眠來執行它時,會引發'syntaxErrorException'。有任何想法嗎?謝謝
你真的在查詢的末尾有分號嗎?如果是,然後刪除它。 –
HAAA!哦,我的上帝,多麼蠢貨;)就是這樣。有趣的是,當我通過我的Db經理手動執行它時,它與分號一起運行沒有問題。謝謝! – cianBuckley
你的配置中的db2的hibernate方言是什麼? – erencan