본문 바로가기

Spring/JPA

Spring JPA - 쿼리 결과 제한

 

 

서로 바꿔서 사용할 수 있는 fist 또는 top 키워드를 사용하여 쿼리 메서드의 결과를 제한할 수 있습니다.

 

선택적인 숫자 값을 top 또는 first에 추가하여 반환할 최대 결과 크기를 지정할 수 있습니다.

숫자를 생략하면 결과 크기가 1로 가정됩니다.

 

// Top와 First를 사용하여 쿼리 결과 크기 제한

User findFirstByOrderByLastnameAsc();

User findTopByOrderByAgeDesc();

Page<User> queryFirst10ByLastname(String lastname, Pageable pageable);

Slice<User> findTop3ByLastname(String lastname, Pageable pageable);

List<User> findFirst10ByLastname(String lastname, Sort sort);

List<User> findTop10ByLastname(String lastname, Pageable pageable);



제한 표현식은 고유한 쿼리를 지원하는 데이터 저장소에 대해 Distinct 키워드도 지원합니다.

또한 결과 집합을 하나의 인스턴스로 제한하는 쿼리의 경우 결과를 Optional 키워드로 래핑하는 것이 지원됩니다.

페이지 매김 또는 슬라이싱이 제한 쿼리 페이지 매김(및 사용 가능한 페이지 수 계산)에 적용되는 경우 제한된 결과 내에서 적용됩니다.

 

✅ Sort 매개 변수를 사용하여 동적 정렬과 함께 결과를 제한하면 가장 작은 'K' 요소와 가장 큰 'K' 요소에 대한 쿼리 메서드를 표현할 수 있습니다.