[스프링] 스프링 데이터 JPA 페이징

스프링은 JPA(Java Persistence API)를 사용하여 데이터베이스와 상호작용하는 애플리케이션을 개발할 때 도움이 되는 여러 유용한 기능들을 제공합니다. 그 중에서도 페이징(paging) 기능은 대용량의 데이터를 다룰 때 유용하며, 스프링 데이터 JPA는 이러한 페이징을 쉽게 구현할 수 있도록 도와줍니다.

1. 페이징 처리하기

1.1. Repository 인터페이스 메서드 정의

데이터를 페이징하여 가져오기 위해서는 스프링 데이터 JPA의 CrudRepositoryPagingAndSortingRepository 인터페이스를 이용하여 메서드를 정의해야 합니다. 예를 들어, 다음과 같이 메서드를 정의할 수 있습니다.

public interface BookRepository extends PagingAndSortingRepository<Book, Long> {
    Page<Book> findByCategory(String category, Pageable pageable);
}

위 예제에서 findByCategory 메서드는 category를 기준으로 책을 페이징하여 조회하는 기능을 제공합니다.

1.2. 페이징 처리 메서드 호출

페이징 처리 메서드는 사용 방법도 간단합니다. 해당 메서드를 호출할 때 PageRequest를 이용하여 페이징 처리를 할 수 있습니다.

Pageable pageable = PageRequest.of(pageNumber, pageSize, Sort.by("title").ascending());
Page<Book> books = bookRepository.findByCategory("IT", pageable);

위 예제에서 pageNumber는 가져올 페이지 번호, pageSize는 한 페이지에 보여질 아이템의 개수를 나타냅니다. 또한 Sort를 이용하여 정렬을 지정할 수 있습니다.

2. 정리

스프링 데이터 JPA를 이용하여 페이징 처리를 구현하는 방법을 살펴보았습니다. 페이징 처리는 대용량의 데이터를 다룰 때 효율적으로 처리하기 위한 중요한 기능이며, 스프링 데이터 JPA를 사용하면 간단하게 구현할 수 있습니다.

참고 문헌: