728x90
반응형
JPA에서 결과를 Map형태로 추출하고 싶을때는, transform 메서드와 GroupBy.groupBy 인터페이스를 활용하면 된다.
3.2.4. 결과 집합(aggregation)
com.mysema.query.group.GroupBy 클래스는 메모리에서 쿼리 결과에 대한 집합 연산을 수행하는 집합 함수를 제공한다. 다음은 사용 예이다.
부모 자식 관계에 대한 집합 연산
import static com.mysema.query.group.GroupBy.*;
Map<Integer, List<Comment>> results = query.from(post, comment)
.where(comment.post.id.eq(post.id))
.transform(groupBy(post.id).as(list(comment)));
이 코드는 post id와 관련된 커멘트를 매핑한다.
다중 결과 컬럼
Map<Integer, Group> results = query.from(post, comment)
.where(comment.post.id.eq(post.id))
.transform(groupBy(post.id).as(post.name, set(comment.id)));
이 코드는 post id와 Group을 매핑한다. Group은 post name과 comment id를 갖는다.
Group은 GroupBy에 대해 Tuple 인터페이스와 같은 역할을 한다.
더 많은 예제는 여기를 참고한다.
1. querydsl.com
http://querydsl.com/static/querydsl/3.7.2/reference/ko-KR/html/ch03s02.html
2. cat_ozzu 님 공유 감사합니다.
728x90
반응형
'Programming-[Backend] > JPA' 카테고리의 다른 글
[링크] could not initialize proxy - no Session (0) | 2023.05.02 |
---|---|
[TIL] JPA Expressions Date 오늘 날짜 또는 상수 값 넣기 : dateTemplate, SQL function(내장함수) (0) | 2022.05.17 |
[TIL][에러] SQL-Server - hibernate; JPA 적용 Sort, Paging 시 데이터 누락, 중복 문제 (0) | 2021.12.18 |
[Querydsl][작성중] 6. 실무 활용 - 사용자 정의 Repository (0) | 2021.12.09 |
[Querydsl] 5. 중급 문법 - 벌크연산, SQL function, 동적 검색 적용 API 개발해보기 (0) | 2021.12.08 |