Spring Data JPA는 정렬과 페이징 처리를 간단하게 지원합니다.
PagingAndSortingRepository를 상속받으면 기본적인 페이징과 정렬 기능을 사용할 수 있습니다.
정렬 처리하기
일반적인 쿼리문에서 정렬을 사용할 때는 ORDER BY 구문을 사용합니다.
쿼리 메서드로 정렬 기능에 동일한 키워드가 사용됩니다.
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByNameOrderByNumberAsc(String name);
List<User> findByNameOrderByNumberDesc(String name);
}
// 서비스나 컨트롤러에서 사용 예시
userRepository.findByName("John");
Spring Data JPA에서 제공하는 Sort 클래스를 사용하여 쿼리 결과를 정렬할 수 있습니다.
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name, Sort sort);
}
// 서비스나 컨트롤러에서 사용 예시
userRepository.findByName("John", Sort.by("age").descending());
페이징 처리
페이징이란 데이터베이스의 레코드를 개수로 나눠 페이지를 구분하는 것을 의미합니다.
페이징 처리를 위해 Spring Data JPA에서는 Pageable 인터페이스와 Page 클래스를 제공합니다.
public interface UserRepository extends JpaRepository<User, Long> {
Page<User> findByName(String name, Pageable pageable);
}
// 서비스나 컨트롤러에서 사용 예시
Page<User> users = userRepository.findByName("John", PageRequest.of(0, 10));
'BACKEND > SPRING' 카테고리의 다른 글
Spring Data JPA 활용 - JPA Auditing 적용 (0) | 2023.08.13 |
---|---|
Spring Data JPA 활용 - @Query 어노테이션과 QueryDSL (0) | 2023.08.13 |
Spring Data JPA 활용 - JPQL과 쿼리 메서드 (0) | 2023.08.13 |
데이터베이스 연동 - 레포지토리 인터페이스 설계와 DAO 연동을 위한 컨트롤러 설계 (0) | 2023.08.06 |
데이터 베이스 연동 - 엔티티 설계와 DAO 설계 (0) | 2023.08.06 |