티스토리 뷰
안녕하세요.
Querydsl 집합 쿼리에 대해 포스팅해보겠습니다.
@Test
public void aggregation() throws Exception {
List<Tuple> result = queryFactory
.select(
member.count(),
member.age.sum(),
member.age.avg(),
member.age.max(),
member.age.min())
.from(member)
.fetch();
Tuple tuple = result.get(0);
assertThat(tuple.get(member.count())).isEqualTo(4);
assertThat(tuple.get(member.age.sum())).isEqualTo(100);
assertThat(tuple.get(member.age.avg())).isEqualTo(25);
assertThat(tuple.get(member.age.max())).isEqualTo(40);
assertThat(tuple.get(member.age.min())).isEqualTo(10);
Tuple 객체로 반환한다.
DTO로 바로 반환하는 방법을 많이 쓴다.
/*
팀의 이름과 각 팀의 평균 연령을 구해라
*/
@Test
public void group() throws Exception {
List<Tuple> fetch =
queryFactory.select(team.name, member.age.avg())
.from(member)
.join(member.team, team)
.groupBy(team.name)
.fetch();
Tuple teamA = fetch.get(0);
Tuple teamB = fetch.get(1);
assertThat(teamA.get(team.name)).isEqualTo("TEAM A");
assertThat(teamA.get(member.age.avg())).isEqualTo(15);
assertThat(teamB.get(team.name)).isEqualTo("TEAM B");
assertThat(teamB.get(member.age.avg())).isEqualTo(35);
}
having()
도 사용가능
집합
'Dev > Spring Data' 카테고리의 다른 글
[Querydsl] 7. 결과조회 (0) | 2021.01.19 |
---|---|
[Querydsl] 6. Querydsl Where절 (0) | 2021.01.19 |
[Querydsl] 5. JPQL vs Querydsl 비교 (0) | 2021.01.19 |
[Querydsl] 4. 예제용 도메인 생성 (0) | 2021.01.19 |
[Querydsl] 3. JPA yml 설정 (0) | 2021.01.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- @formula
- Spring
- mapstruct
- JPA
- 스프링부트 시작하기
- FastAPI
- paawordencoder
- ResourceHttpReqeustHandler
- ControllerAdvice
- booleanExpression
- Python
- 스프링부트
- 개발
- java11
- boot
- springsecurity
- Java
- 스프링시큐리티
- springboot
- like절
- spring web
- API
- 웹서비스
- 유사결과
- Security
- howtoinstallnginx
- 스프링
- QueryDSL
- 자바
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함