QueryDsl

Kyle_Kim·2022년 9월 22일
0
 @Test
    public void aggregation() throws Exception {
        em.persist(new Member(null, 100));
        em.persist(new Member("member2", 100));
        em.persist(new Member("member3", 110));
        em.persist(new Member("member4", 90));

        // Querydsl 이 제공하는 Tuple
        // member 단일 타입을 조회하는 것이 아닌 데이터 타입이 여러개일때는 튜플을 사용한다
        // 실무에서는 튜플을 사용하지않고 DTO를 주로 쓴다.
        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(400);
        assertThat(tuple.get(member.age.avg())).isEqualTo(100);
        assertThat(tuple.get(member.age.max())).isEqualTo(110);
        assertThat(tuple.get(member.age.min())).isEqualTo(90);
    }
profile
Make Things Right

0개의 댓글