Expressions
🧪 Expressions
정의
Expressions는 Querydsl에서 다양한 표현식(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 표현식을 만든다 |

⚠️ 주의사항
Expressions는 Querydsl 전용 도구다.- 템플릿 문자열을 잘못 작성하면 실행 시 오류가 날 수 있다.
- 단순한 조건은
Expressions보다 기본 DSL이 더 읽기 쉽다. - DB 함수 사용 시 DB 종속성을 고려해야 한다.
📌 정리
Expressions는 Querydsl 표현식을 만드는 팩토리 클래스다.- 템플릿, 상수,
null표현식을 생성할 때 유용하다. - 복잡한 쿼리나 DB 함수 호출이 필요한 경우 보조 도구로 사용한다.
댓글남기기