dasd412 / RemakeDiabetesDiaryAPI

혈당일지 api 리메이크
https://www.diabetes-diary.tk/
1 stars 0 forks source link

Querydsl 다중 컬럼 리턴 #43

Closed dasd412 closed 2 years ago

dasd412 commented 2 years ago

참고 자료 http://querydsl.com/static/querydsl/3.7.2/reference/ko-KR/html/ch03s02.html

dasd412 commented 2 years ago

group by 와 함께 쓴 코드

    /**
     * @param writerId 작성자 id
     * @return (평균 혈당, 식사 시간) 형태의 튜플들
     */
    @Override
    public List<Tuple> findAverageBloodSugarGroupByEatTime(Long writerId) {
        return jpaQueryFactory
                .select(QDiet.diet.bloodSugar.avg(),QDiet.diet.eatTime)
                .from(QDiet.diet)
                .innerJoin(QDiet.diet.diary.writer, QWriter.writer)
                .on(QDiet.diet.diary.writer.writerId.eq(writerId))
                .groupBy(QDiet.diet.eatTime)
                .fetch();
    }
dasd412 commented 2 years ago

테스트 코드에서 튜플 꺼내 쓰기

        for (Tuple tuple : tupleList) {
            EatTime eatTime = tuple.get(QDiet.diet.eatTime);
            Double average = tuple.get(QDiet.diet.bloodSugar.avg());
            logger.info(eatTime + " " + average);
        }