首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate是否支持运行合并语句?

问hibernate是否支持运行合并语句?
EN

Stack Overflow用户
提问于 2017-04-16 18:53:06
回答 1查看 1.7K关注 0票数 0

当我执行以下原生查询时:

代码语言:javascript
复制
String sql="merge into omfx.OM_PART_LOOKUP   toLookup\r\n" + 
        "           using omfx.OM_PART_LOOKUP fromLookup\r\n" + 
        "               on(\r\n" + 
        "                 toLookup.PROJECT_ID= "+toProjectID+" and \r\n" + 
        "                 fromLookup.PROJECT_ID= "+fromProjectId +" and  \r\n" + 
        "                 toLookup.scope =0 and \r\n" + 
        "                 UPPER(toLookup.PN)  =  UPPER(fromLookup.PN) and\r\n" + 
        "                 UPPER(toLookup.MAN)  =  UPPER(fromLookup.MAN)\r\n" + 
        "                )\r\n" + 
        "           when matched then update \r\n" + 
        "               set \r\n" + 
        "             \r\n" + 
        "             toLookup.SEPN = fromLookup.SEPN ,\r\n" + 
        "             toLookup.SE_MAN_ID = fromLookup.SE_MAN_ID ,\r\n" + 
        "             toLookup.COM_ID = fromLookup.COM_ID ,\r\n" + 
        "             toLookup.SE_MAN_NAME = fromLookup.SE_MAN_NAME ,\r\n" + 
        "             toLookup.PART_CATEGORY = fromLookup.PART_CATEGORY \r\n" + 
        "             \r\n" + 
        "             \r\n" + 
        "            when NOT matched then \r\n" + 
        "            insert (PN,MAN,SEPN, SE_MAN_ID, COM_ID,SE_MAN_NAME ,PART_CATEGORY ,INSERT_DATE,PROJECT_ID)\r\n" + 
        "             values (fromLookup.PN,fromLookup.MAN,fromLookup.SEPN, fromLookup.SE_MAN_ID, fromLookup.COM_ID , fromLookup.SE_MAN_NAME ,fromLookup.PART_CATEGORY , SYSDATE,"+toProjectID+") where\r\n" + 
        "             fromLookup.PROJECT_ID = "+fromProjectId+" and fromLookup.scope = 0\r\n" + 
        "            ";

    System.out.println("projectOperationsBean.mergeManLookup()::sql=="+sql);
     em.createNativeQuery(sql).getSingleResult();

我发现了以下错误

本地异常堆栈:异常EclipseLink-4002:org.eclipse.persistence.exceptions.DatabaseException内部异常: java.sql.SQLException: ORA-00900:无效SQL语句

错误代码:0

但是当我在oracle中执行这个查询时,它运行得很好。

hibernate是否支持运行合并语句?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 08:03:15

谢谢@Jorge Campos

MERGE是DML语句,所以我必须执行.executeUpdate()而不是.getSingleResult()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43440863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档