Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Java HibernateSQL查询有两个相同的表,并且应该返回名称相同但值不同的列,但返回相同的值_Java_Spring_Oracle_Hibernate_Jpa - Fatal编程技术网

Java HibernateSQL查询有两个相同的表,并且应该返回名称相同但值不同的列,但返回相同的值

Java HibernateSQL查询有两个相同的表,并且应该返回名称相同但值不同的列,但返回相同的值,java,spring,oracle,hibernate,jpa,Java,Spring,Oracle,Hibernate,Jpa,我必须返回两个应用程序名source和target,因此我加入应用程序表以获取名称。。下面是源代码。当我运行它时,我得到以下查询 select distinct app_source,target,zao.app_name,dependency,zat.app_name from zapp_dependency zd join zapplication zao on zao.csi_id=zd.app_source join zapplication zat on zat.csi_id=zd.

我必须返回两个应用程序名source和target,因此我加入应用程序表以获取名称。。下面是源代码。当我运行它时,我得到以下查询

select distinct app_source,target,zao.app_name,dependency,zat.app_name from zapp_dependency zd join zapplication zao on zao.csi_id=zd.app_source 
join zapplication zat on zat.csi_id=zd.target
当我在oracle sql developer中运行时,我得到了期望的结果,即源和目标应用程序名称不同,但在hibernate中得到的结果相同。。有人能帮忙吗

try
    {
    Session session=HibernateUtil.currentSession();

    String sql="select distinct app_source,target,zao.app_name,dependency,zat.app_name from zapp_dependency zd join zapplication zao "
            + "on zao.csi_id=zd.app_source"
            + " join zapplication zat on zat.csi_id=zd.target ";
    ob=session.createSQLQuery(sql).list();
     
    for(Object[] ab:ob)
    {
        ZAppDependencyDTO elem=new ZAppDependencyDTO();
        elem.setSource(ab[0]==null?"":ab[0].toString());
        elem.setTarget(ab[1]==null?"":ab[1].toString());
        elem.setDependency(ab[3]==null?' ':ab[3].toString().trim().charAt(0));
        elem.setId(elem.getSource()+"@@@"+elem.getTarget()+"@@@"+elem.getDependency());
        elem.setSourcename(ab[2]==null?"":ab[2].toString());
        
        System.out.println(ab[2].toString());
        elem.setTargetname(ab[4]==null?"":ab[4].toString());
        System.out.println(ab[4].toString());
dto.add(elem);
    }
    }
    
    catch(Exception ex)
    {
        count=0;
        ex.printStackTrace();
        tx.rollback();
    }   

两个表中的相同列名似乎有问题

还提到

您能否尝试使用以下命令,使用{}指定特定的别名


两个表的相同列名应使用别名

select distinct app_source,target,zao.app_name as zao_app_name ,zat.app_name as zat_app_name ...
将我的查询更改为

String sql="select distinct app_source,target,zao.app_name as source_name,dependency,zat.app_name as target_name from zapp_dependency zd join zapplication zao "
            + "on zao.csi_id=zd.app_source"
            + " join zapplication zat on zat.csi_id=zd.target "

它基本上起到了别名的作用

Thnks很多,因为这个概念认为查询不起作用,但它帮助我解决了我的问题,有这个HQL,也有本地查询,这可能是查询不起作用的原因。但很好,你找到了解决办法。
String sql="select distinct app_source,target,zao.app_name as source_name,dependency,zat.app_name as target_name from zapp_dependency zd join zapplication zao "
            + "on zao.csi_id=zd.app_source"
            + " join zapplication zat on zat.csi_id=zd.target "