복붙노트

[SPRING] @Query 정의와 스펙을 하나의 Spring Data JPA 저장소 메소드에 결합 할 수 있습니까?

SPRING

@Query 정의와 스펙을 하나의 Spring Data JPA 저장소 메소드에 결합 할 수 있습니까?

하나의 저장소 메소드에서 @Query 주석과 스펙을 모두 사용할 수 있습니까? 예를 들어, 다음과 같은 메소드가 필요합니다.

@Query(value="SELECT e from EMPLOYEE where firstName <> ?1")
public Page<Employee> findEmployeeBySomethigFancy(String firstName, Pageable pageable, Specification<Employee> emp);

Predicate로 전체 쿼리를 작성하고 @Query 주석을 제거 할 수 있습니까?

해결법

  1. ==============================

    1.먼저이 블로그 게시물을 먼저 읽고 싶을 것입니다. 둘째, 리포지토리가 구현해야하는 JpaSpecificationExecutor 인터페이스에 따라 사양을 사용하여 다음 쿼리를 실행할 수 있습니다.

    먼저이 블로그 게시물을 먼저 읽고 싶을 것입니다. 둘째, 리포지토리가 구현해야하는 JpaSpecificationExecutor 인터페이스에 따라 사양을 사용하여 다음 쿼리를 실행할 수 있습니다.

    따라서 @Query (또는 query-methods)와 스펙을 혼합 할 필요는 없습니다.

    이 조건을 표현할 수 있습니다.

    firstName <> ?1
    

    대신에 스펙을 사용합니다. 그런 다음 원하는만큼 많은 사양을 결합 할 수 있습니다.

  2. from https://stackoverflow.com/questions/26379522/can-i-combine-a-query-definition-and-specifications-on-one-spring-data-jpa-repo by cc-by-sa and MIT license