我有一个表(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,因为结果有不同的列(或盟友) 我不知道我怎么能在春天读到这样的结果..任何想法?
答案 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();