🧪 Expressions

정의

ExpressionsQuerydsl에서 다양한 표현식(Expression)을 생성하는 팩토리 클래스이다. 컬럼, 상수, 템플릿, 조건식처럼 Querydsl이 다루는 표현식을 직접 만들 때 사용한다.

Querydsl의 기본 DSL로 표현하기 어려운 경우 템플릿 기반 표현식을 만들 수 있다.

🧩 역할

  • 표현식을 직접 생성한다
  • 템플릿 기반 SQL 표현식을 구성한다
  • Querydsl DSL로 부족한 부분을 보완한다
  • 동적 쿼리에서 다양한 타입의 표현식을 만든다

🛠 사용법

문자열 템플릿

StringExpression expr = Expressions.stringTemplate("FUNCTION('UPPER', {0})", user.name);

숫자 템플릿

NumberExpression<Integer> expr = Expressions.numberTemplate(
        Integer.class,
        "FUNCTION('LENGTH', {0})",
        user.name
);

상수 표현식

StringExpression expr = Expressions.constant("ACTIVE");

null 표현식

Expression<?> expr = Expressions.nullExpression();

🧩 주요 기능

기능 설명
stringTemplate 문자열 템플릿 표현식을 만든다
numberTemplate 숫자 템플릿 표현식을 만든다
constant 상수 표현식을 만든다
nullExpression null 표현식을 만든다

image

⚠️ 주의사항

  • Expressions는 Querydsl 전용 도구다.
  • 템플릿 문자열을 잘못 작성하면 실행 시 오류가 날 수 있다.
  • 단순한 조건은 Expressions보다 기본 DSL이 더 읽기 쉽다.
  • DB 함수 사용 시 DB 종속성을 고려해야 한다.

📌 정리

  • Expressions는 Querydsl 표현식을 만드는 팩토리 클래스다.
  • 템플릿, 상수, null 표현식을 생성할 때 유용하다.
  • 복잡한 쿼리나 DB 함수 호출이 필요한 경우 보조 도구로 사용한다.

연결문서

댓글남기기