Q Class / Specification 가이드
1. 개요
ElastiCORE는 엔티티 정의를 기반으로 Q 클래스를 자동 생성합니다. Q 클래스는 JPA Specification 패턴을 래핑하여 타입 안전한 동적 쿼리를 구성할 수 있게 해주는 핵심 도구입니다.
Q 클래스가 제공하는 기능
- 타입 안전한 조건 빌더: 컴파일 타임에 필드명과 타입을 검증합니다.
- JoinSpec: 조인, 프로젝션, 서브쿼리를 지원하는 고급 조회 빌더입니다.
- UpdateSpec: WHERE 조건 기반의 벌크 업데이트를 수행합니다.
- DeleteSpec: WHERE 조건 기반의 벌크 삭제를 수행합니다.
- checkEmpty 패턴: null이나 빈 값을 자동으로 무시하여 선택적 조건을 간결하게 처리합니다.
Q 클래스는 언제 사용하나요?
Spring Data JPA의 JpaSpecificationExecutor를 사용하는 모든 동적 검색 시나리오에서 Q 클래스를 활용할 수 있습니다. 특히 검색 조건이 사용자 입력에 따라 유동적으로 변하는 경우에 강력한 효과를 발휘합니다.