spring boot union无法正常工作

时间:2018-05-04 07:03:38

标签: spring spring-boot spring-data spring-data-jpa

我有一个场景,我希望将两个具有相同列的表组合在一起。表1具有company1员工详细信息,table2具有company2员工详细信息,EMPID是表中的主键,我的查询是< / p>

select * from table1 t1 where t1.empid=400 union all 
select * from table2 t2 where t2.empid=400 

在该方案中,公司都有一名empid = 400的员工

我想从公司empid 400获得,这个查询在postgres sql编辑器中工作正常,但在春季启动时提供此查询时,返回总共2行,但两行相同(如t1),t2值替换为t1。

任何人都可以为这种或任何其他方法提供解决方案,以便在春季启动时实现这一目标。

了解更多

@Query(value = "select * from table1 t1 where t1.empid=?1 union all 
select * from table2 t2 where t2.empid=?1 ", nativeQuery = true)
public List<Emp> getByProjectId(@Param("empid") Integer pEmpid);


T1
EMPID   NAME    DEPT
400     test    DEV 
T2
EMPID   NAME    DEPT
400     test2  TESTING


Expected result 

EMPID   NAME    DEPT
400     test    DEV
400     test2   TESTING

但是春天jpa给出的输出为

EMPID   NAME    DEPT
400     test    DEV
400     test    DEV

EMP实体

@Entity
@Table(name="EMP")
public class Emp {
    @Id
    @Column(name = "EMP_NO")
    private int empNo;
    @Column(name = "EMP_NAME")
    private String empName;
    @Column(name = "DEPT_NAME")
    private String deptName;
}

先谢谢。

0 个答案:

没有答案