본문 바로가기

스프링

[Query Dsl][JPQL] 서브쿼리 주의사항 (from문에서는 불가능)

JPQL에서는 from절에서 서브쿼리를 지원하지 않는다.

따라서, Query DSL에서도 From 절에서는 서브쿼리를 사용하지 못한다.

 

그럼 어떻게?

  1. 서브 쿼리 ➡️ join 으로 변경
  2. 쿼리를 분리해서 2번 실행 ( 1번이 안되면)
  3. nativeSQL 사용 (2번이 안되면)

Tip

DB에서 데이터를 가져올 때, 딱 맞는 데이터를 짜서 데이터를 가져오기보다는 적당히 정제해서 가져오고, 애플리케이션에서 로직으로 해결하는 게 더 효율적일 수 있다.

( 굳이, 서브쿼리로 복잡하게 지지고 볶을 필요는 없다!)

출처

https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84 (김영한님 querydsl 강의)