hibernate throw:在""之后发现了一个意外的令牌""

cia*_*ley 2 db2 hibernate native-sql

我有一个本机SQL查询,我想通过hibernate运行,但抛出一个错误:

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"
Run Code Online (Sandbox Code Playgroud)

我运行以执行更新的代码是:

SQLQuery updateQuery = getSession().createSQLQuery(updateSql);
System.out.println(updateQuery.getQueryString());    
updateQuery.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

在调试期间,我可以看到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   ;
Run Code Online (Sandbox Code Playgroud)

如果我手动运行上面代码生成的sql,它将执行正常.但是,当我尝试通过hibernate执行它时会抛出'syntaxErrorException'.有任何想法吗?谢谢

JB *_*zet 5

问题是由查询末尾的分号引起的.您使用的PostgreSQL SQL工具需要它,因为它允许分离多个查询,但是通过Java语句执行单个查询,分号不能存在.