带有自定义结果的Spring CrudRepository查询

时间:2018-03-06 10:50:53

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

我有一个表(Employee),我想查询。结果将连接同一个表,从输出中的一行中的Employee获取2行。

+------+---------+------+
| name | manager | dept |
+------+---------+------+
| Zak  |         | xyz  |
| Arp  | Zak     | abc  |
| Tom  | Zak     | abc  |
| Smi  | Arp     | abc  |
| Moh  | Zak     | xyz  |
+------+---------+------+

我试图让每个经理的员工都有特定的选择(部门)

select t1.name, t2.name from TB t1
     RIGHT JOIN TB t2 on t1.name = t2.manager
    where t1.dept="xyz" AND t2.dept="abc"
    ORDER BY t1.name

结果将是这样的:

+------+------+------+
| name | name | dept |
+------+------+------+
| Zak  | Arp  | xyz  |
| Zak  | Tom  | abc  |
+------+------+------+

当我在spring尝试使用CrudRepository时,我需要为结果定义一个Entity,但结果不是我的DB中的表。并且我无法使用Entity Employee,因为结果有不同的列(或盟友) 我不知道我怎么能在春天读到这样的结果..任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用@Query注释。将以下方法放在crud存储库中。

@Query("select t1.name, t2.name from TB t1 RIGHT JOIN TB t2 on t1.name = t2.manager where t1.dept="xyz" AND t2.dept="abc" ORDER BY t1.name", nativeQuery=true) 
 List<Object[]> find();
相关问题