IT

querydsl 에서 subQuery 사용하는 방법

채보 2021. 1. 29. 00:47

 

querydsl을 사용하다보면 native query와는 다르게 사소한 부분에서 막히곤 합니다. 

 

오늘은 그 중 하나인 subQuery 사용 방법에 대해 정리해볼까 합니다. 

 

native 쿼리 작성 시 보통 아래와 같은 subQuery를 자주 사용하셨을꺼라 생각합니다.

select	s.no, 
        (select sum(score) 
         from 	test t
         where 	t.no = s.no) as total_score
from 	student s

 

queyrdsl에서는 SQLExpressions를 사용하면 됩니다.

JPASQLQuery<?> jpasqlQuery = querydslHelper.query()
                             .select(no,
                                     SQLExpressions.select(no.sum())
                                                   .from(test)
                                                   .where(test.no = student.no)
                             )
                             .from(student);

 

사소한 것 좀 그만 잊어먹자!!!!!!!