1. Expression의 정의
Expression<T>은 SQL에서 "하나의 값"이 될 수 있는 것을 표현하는 QueryDSL의 핵심 인터페이스야.
2. Expression의 주요 종류
타입설명
| Expression<T> | 모든 표현식의 최상위 타입 |
| StringExpression | 문자열 값 표현 (user.name.like("%abc%")) |
| NumberExpression<T> | 숫자 값 표현 (user.age.add(1), gt(10)) |
| BooleanExpression | 논리 표현식 (user.age.gt(20).and(user.status.eq("Y"))) |
| DateExpression<T> | 날짜 관련 표현식 |
| SimpleExpression<T> | 특별한 타입이 없을 때 사용 |
| StringTemplate / NumberTemplate | 직접 SQL 함수나 표현식 지정 시 사용 (STR_TO_DATE(...), YEAR(...)) |
왜 중요할까?
QueryDSL에서 Expression이 중요한 이유는 타입 안정성과 동적 쿼리 조립 때문이야
타입 안정성
- user.age.goe("스무살") 같은 코드를 컴파일 단계에서 막아줘
- SQL문을 자바 코드처럼 안전하게 작성 가능
🔸 동적 쿼리 만들기
- 조건문에서 BooleanBuilder나 where() 안에 Expression을 조립해서 쓸 수 있어
'SPRING' 카테고리의 다른 글
| @RequestBody는 왜 Servlet이나 Spring Filter에서 사용할 수 없을까? (1) | 2025.05.19 |
|---|---|
| [QueryDsl] QueryDSL의 BooleanBuilder (0) | 2025.04.23 |
| QueryDSL에서 문자열 포함 검색 (LIKE %keyword%) 처리 방법 정리 (0) | 2025.04.22 |
| [Spring] Spring에서 에러 명칭을 관리하는 방법(에러처리) (0) | 2025.04.08 |
| [Spring] 테스트 코드에 config적용법 (0) | 2024.09.10 |