JPA에서 QueryDSL로 집계 쿼리를 사용하는 방법입니다.
예제 집계 코드를 보게 되면 각 팀의 인원을 조회하고 있습니다.
employee 엔티티와 team 엔티티를 join 하고(66라인)
team 엔티티 id로 집계한 다음에(67라인)
team 이름과 팀의 인원을 조회합니다.(64라인)
해당 조회 결과를 메타 클래스에 저장할 수 없기에 stream을 활용하여 TeamDto 클래스에 매핑한 뒤 저장합니다.(63, 69~74라인)
예제 집계 코드를 DB 쿼리로 비유하면
select team.id, count(*)
from team
join employee
on team.id = employee.team_id
group by team.id
와 비슷하다고 할 수 있습니다.
해당 코드를 json으로 조회했을 때 정상적으로 실행된 것을 알 수 있습니다.
'dev > JPA' 카테고리의 다른 글
JPA Eager Lazy Loading (0) | 2023.09.01 |
---|---|
JPA QueryDSL Paging (0) | 2023.08.31 |
JPA Insert Batch (0) | 2023.08.30 |
JPA ID SEQUENCE (0) | 2023.08.30 |
JPA Infinite Recursion 예외 처리 (0) | 2023.08.29 |