인프런 - 실전! 스프링 데이터 JPA


스프링 데이터 JPA는 JPA Criteria를 활용해서 이 개념을 사용할 수 있도록 지원
잘 사용하지 않음...^-^..

술어(predicate)

  • 참 또는 거짓으로 평가
  • AND OR 같은 연산자로 조합해서 다양한 검색조건을 쉽게 생성 (컴포지트 패턴)
  • 스프링 데이터 JPA는 org.springframework.data.jpa.domain.Specification 클래스로 정의

명세기능 사용 방법

  • JpaSpecificationExecutor 인터페이스 상속
public interface MemberRepository extends JpaRepository<Member, Long>, JpaSpecificationExecutor<Member> {
}
  • JpaSpecificationExecutor 인터페이스
public interface JpaSpecificationExecutor<T> {
 Optional<T> findOne(@Nullable Specification<T> spec);
 List<T> findAll(Specification<T> spec);
 Page<T> findAll(Specification<T> spec, Pageable pageable);
 List<T> findAll(Specification<T> spec, Sort sort);
 long count(Specification<T> spec);
}
  • Spec 생성

  • 테스트

참고: 실무에서는 JPA Criteria를 거의 안쓴다! 대신에 QueryDSL을 사용하자

'Back-end > Spring Data Jpa' 카테고리의 다른 글

나머지 기능들 - Projections  (0) 2021.06.08
나머지 기능들 - Query By Example  (0) 2021.06.08
스프링 데이터 JPA 분석  (0) 2021.06.08
확장 기능 - Web 확장  (0) 2021.06.07
확장 기능 - Auditing  (0) 2021.06.07

+ Recent posts