querydsl - 기본문법

구운몽·2023년 12월 29일
0

1. 서브쿼리

jpaQueryFactory.selectFrom(qMenu)
                .where(qMenu.menuNo.in(
                        JPAExpressions
                                .select(qMenu.menuNo)
                                .from(qMenu)
                                .where(qMenu.menuNo.gt(10))));

1-1 서브쿼리 한계

from 절에서 서브쿼리는 JPQL에서 지원하지 않음=> querydsl에서도 지원안함

  • 서브쿼리를 join으로 변경하거나
  • 로직에서 쿼리를 분리해서 수행
  • nativeSQL 사용

db를 데이터 가져오는 역할에 집중하고, 로직과 화면, 캐시로 처리할 수 있는 방법을 고민할 것 (antipatterns sql)

2. case

CaseBuilder(), when, then 등, 마찬가지로 가능하면 사용하지 않을 것

3. 상수, 문자 더하기

  • 가끔 테스트를 위해서 임시 데이터 쓸 때, Expressios.constant("T")
  • number to string stringValue()로 처리

0개의 댓글