首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本机查询选择多个表hibernate和oracle。

本机查询选择多个表hibernate和oracle。
EN

Stack Overflow用户
提问于 2018-08-25 07:30:44
回答 1查看 1.3K关注 0票数 0

对于SELECT的两个表,我有一个SQL查询。

我想得到两个表作为实体。

这些表是某些列的名称相等的(id,version)。

我有以下代码:

代码语言:javascript
复制
String sql = "select sepTemp.*,pspTerm.* " +
            "from SEPTRANSACTIONTEMP sepTemp " +
            "LEFT JOIN PSP_Terminal pspTerm ON (pspTerm.idInPSP=sepTemp.termid AND pspTerm.pspID=:pspID) " +
            "where NOT EXISTS " +
            "(select * from PSPTRANSACTION pspTrans where pspTrans.PSPID=:pspID AND pspTrans.termNo=sepTemp.rrn) ";

    List<Object[]> sepTransactionTemps = em.createNativeQuery(sql)
            .setParameter("pspID", PSPTypes.SEP.getType())
            .getResultList();

 sepTransactionTemps.forEach(row -> {
                SEPTransactionTemp sepTransactionTemp = ((SEPTransactionTemp) row[0]);
                PSPTerminal sepTransactionTemp = ((PSPTerminal) row[1]);
...

但是,在下面抛出异常:

代码语言:javascript
复制
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [ID] during auto-discovery of a native-sql query
EN

回答 1

Stack Overflow用户

发布于 2018-08-25 07:36:12

表中存在列id (SEPTRANSACTIONTEMP,左加入PSP_Terminal)

在select查询中为id列创建别名

代码语言:javascript
复制
    String sql = "select " + 
            "sepTemp.id as sepTemp_id, " + 
            "sepTemp.version as sepTemp_version, " +
            "pspTerm.id as pspTerm_id, " + 
            "pspTerm.version as pspTerm_version " // try here add all your column names 
        + " from SEPTRANSACTIONTEMP sepTemp LEFT JOIN PSP_Terminal pspTerm "
        + "ON (pspTerm.idInPSP=sepTemp.termid AND pspTerm.pspID=:pspID) " + "where NOT EXISTS "
        + "(select * from PSPTRANSACTION pspTrans where pspTrans.PSPID=:pspID AND pspTrans.termNo=sepTemp.rrn) ";


List<Object[]> sepTransactionTemps = em.createNativeQuery(sql).setParameter("pspID", PSPTypes.SEP.getType())
        .getResultList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52015039

复制
相关文章

相似问题

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