728x90
반응형
Specification은 쿼리를 보다 정교하게 작성할 수 있게 해주는 JPA 도구이다.
DB 검색을 더 유연하게 다룰 수 있고, 복잡한 검색 조건도 처리할 수 있다.
// 다음과 같은 함수로 Query를 이용한 Specification 객체를 얻을 수 있다.
private Specification<T> search(String keyWord) {
return new Specification<T>() {
private static final long serialVersionUID = 1L;
@Override
public Predicate toPredicate(Root<T> q, CriteriaQuery<?> query, CriteriaBuilder cb) {
// build query here
}
};
}
여기서 query는 Criteria로 짜게 된다.
위 파라미터는 다음과 같다.
Root : 쿼리에서 엔티티의 기본 식별자를 정의
CriteriaQuery : 쿼리의 구조를 정의하는 객체
CriteriaBuilder : Criteria 쿼리를 생성하는 데 필요한 빌더 객체
// 다음과 같이 Specification을 이용해서 조건에 맞는 Entity들을 가져올 수 있다.
List<T> findAll(Specification<T> spec);
728x90
반응형
'Spring' 카테고리의 다른 글
Thymeleaf html에서의 문법 (0) | 2024.08.01 |
---|---|
Spring JPA의 Entity란? (0) | 2024.08.01 |
JPA 쿼리 메서드 (0) | 2024.07.30 |
Spring Service, Controller의 차이점 (0) | 2024.07.30 |
Java Package와 Directory의 차이점 (0) | 2024.07.30 |