개발자/JPA

[JPA/QueryDsl] select문에서 subQuery 사용하기

퍼플벌룬 2021. 8. 12. 17:07
    @Override
    public Page<vo> findApiApplyList(Pageable pageable){
        QVO vo = QVO.vo;
        QVoTmp voTmp= QVoTmp.voTmp;

        JPQLQuery<vo> query = from(vo)
                .select(Projections.fields(vo.class,
                        vo.column1,
                        vo.column2,
                        vo.column3,
                        vo.column4,
                        vo.column5,
                        ExpressionUtils.as(JPAExpressions.select(voTmp.[voTmp에서가져오려는컬럼명])
                        .from(voTmp)
                        .where(voTmp.[voTmp와vo를비교할컬럼명].eq(vo.[voTmp와vo를비교할컬럼명]))
                        , "[alias명]")))
                .orderBy(vo.[정렬할컬럼명].desc());

        return new PageImpl<>(
                getQuerydsl().applyPagination(pageable, query).fetch()
                , pageable
                , query.fetchCount()
        );
    }

 

JPA, QueryDsl로 개발을 하려고 하니 오랜만에 vo(entity .. ) 를 계속 수정해줘야 해서 너무 번거롭다.
하나 작성해놓으면 속도는 금방 붙는 거 같은데, 아직은 쿼리문 하나 쓸 때마다 검색해야 된다.

그래도 이 시간을 통해 배우는 게 있다는 생각이 드니까 재밌다는 생각도 든다.