Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 冬眠投掷:一个意外的标记&引用;发现如下所述:&引用;_Hibernate_Db2_Native Sql - Fatal编程技术网

Hibernate 冬眠投掷:一个意外的标记&引用;发现如下所述:&引用;

Hibernate 冬眠投掷:一个意外的标记&引用;发现如下所述:&引用;,hibernate,db2,native-sql,Hibernate,Db2,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

我有一个本机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"
我运行以执行更新的代码是:

SQLQuery updateQuery = getSession().createSQLQuery(updateSql);
System.out.println(updateQuery.getQueryString());    
updateQuery.executeUpdate();
在调试期间,我可以看到SQLQuery对象的内部,sql是:(在db2中运行良好)


如果我手动运行上面代码生成的sql,它将很好地执行。然而,当我尝试通过hibernate执行时,它抛出了“syntaxErrorException”。有什么想法吗?谢谢

问题是由查询末尾的分号引起的。您使用的PostgreSQL工具需要它,因为它允许分隔多个查询,但要通过Java语句执行单个查询,分号必须不在那里。

您真的在查询末尾有分号吗?如果是,则将其移除。哈哈!哦,我的天哪,真是个混蛋;)就这样。有趣的是,当我通过我的Db管理器手动执行它时,它使用分号运行没有问题。谢谢在您的配置中,db2的hibernate方言是什么?@JB Nizet不要将答案放在答案部分,而不要放在注释中。
UPDATE some_table SET DEST_FLDR = 'some_value' ,
LST_CHG_TMS = CURRENT TIMESTAMP
WHERE SUB_RUN_ID = 111111    
AND INQ_EXE_ID = 12345   ;