코딩하는 털보

21.11.03 TIL 본문

Diary/Today I Learned

21.11.03 TIL

이정인 2021. 11. 3. 23:57

오늘의 삽질

JPQL로 group by, order by

아래와 같은 쿼리를 JPQL로 날리고 싶었다.

select user_id 
from completed_habit 
group by user_id 
order by count(*) desc limit 1;

User를 직접 꺼내면 User 엔티티와 조인한다.

@Query(value = "select new com.sollertia.habit.domain.completedhabbit.QueryDto(c.user) " +
        "from CompletedHabit c " +
        "where c.isSuccess = true " +
        "group by c.user.id " +
        "order by count(c) desc ")
List<QueryDto> test();

User를 직접 꺼내지 않고 user.id 만 꺼내면 조인하지 않는다.

@Query(value = "select new com.sollertia.habit.domain.completedhabbit.QueryDto(c.user.id) " +
        "from CompletedHabit c " +
        "where c.isSuccess = true " +
        "group by c.user.id " +
        "order by count(c) desc ")
List<QueryDto> test();

Jacoco

자코코 플러그인 추가

plugins {
    id 'jacoco'
}

빌드시 index.html 복사

bootJar {
    copy {
        from "build/reports/jacoco/test/html"
        into "src/main/resources/static/docs/jacoco"
    }
}

리포트 생성하기

./gradlew clean test jacocoTestReport
Comments