>  기사  >  Java  >  Spring Data JPA에서 쿼리 결과를 제한하는 방법은 무엇입니까?

Spring Data JPA에서 쿼리 결과를 제한하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-28 08:21:02695검색

How to Limit Query Results in Spring Data JPA?

Spring Data JPA의 setMaxResults에 대한 주석

Spring Data JPA 1.7.0 이전 버전에서는 제한이 불가능했습니다. setMaxResults를 사용하여 주석이 달린 쿼리 메서드에서 반환된 결과 수입니다. 그러나 이 기능은 Spring Data JPA 1.7.0에서 도입되었습니다.

Spring Data JPA 1.7.0

Spring Data JPA 1.7의 새로운 기능 .0(Evans 릴리스 트레인)에서는 새로 도입된 Top 및 First 키워드를 사용하여 결과를 자동으로 제한하는 쿼리 방법을 정의할 수 있습니다. 예:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data는 자동으로 결과를 정의한 숫자로 제한합니다(생략할 경우 기본값은 1). 여기서는 예제에서 볼 수 있는 OrderBy 절을 사용하거나 Sort 매개변수를 메서드에 전달하여 결과의 ​​순서를 지정합니다.

이전 버전의 페이지 매기기

Spring Data JPA 1.7.0 이전 버전에서는 요청 측에서는 Pageable 인터페이스를 사용하고 결과 측에서는 페이지 추상화를 사용하여 페이지 매김을 처리했습니다. 예는 다음과 같습니다.

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}

이 인터페이스를 다음과 같이 사용할 수 있습니다.

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);

결과에 대한 추가 정보가 필요한 경우(예: 페이지 수 또는 페이지 수 등) 총합) Page를 반환 유형으로 사용합니다.

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}

이렇게 하면 총 요소 수를 결정하기 위해 실행할 쿼리의 개수 예측이 트리거됩니다.

위 내용은 Spring Data JPA에서 쿼리 결과를 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.