반응형

1. 시험환경

    ˙ SpringBoot

    ˙ Spring Data JPA

    ˙ MariaDB

 

2. 목적

    ˙ Pageable 기능을 이용하여 데이터 가져오는 방법을 알아보자.

 

3. 적용

    ① Spring Data JPA를 이용하여 DB 테이블 및 테스트 데이터를 생성하였다.

        - URL : https://languagestory.tistory.com/244

 

Spring Data JPA 설정 및 초기 데이터 생성

1. 시험환경 ˙ Spring Boot ˙ Spring-Data-JPA ˙ MariaDB 2. 목적 ˙ Spring Data JPA 설정하는 방법을 알아보자. ˙ Entity와 Repository만 작성하여 DB 테이블을 생성한다. ˙ Spring 프로젝트 실행 시 data.sql 초기 데이터

languagestory.tistory.com

 

    ② PagingAndSortingRepository를 상속 받는 Repository 인터페이스를 생성한다.

        - DB 데이터 조회 함수의 Paging 파라미터 및 Return Type을 선언한다.

1
2
3
4
5
6
7
8
9
10
11
12
package com.example.pageable.repository;
 
import com.example.pageable.domain.Nation;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 
@RepositoryRestResource
public interface NationsRepository extends PagingAndSortingRepository<Nation, String> {
  Page<Nation> findAll(Pageable pageable);
}
cs

 

    ③ Controller에서 데이터를 읽어올 부분 PageRequest(page, size)를 정의하고 Pageable 변수를 전달한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.example.pageable.controller;
 
import com.example.pageable.domain.Nation;
import com.example.pageable.repository.NationsRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
 
@RestController
@RequiredArgsConstructor
public class NationController {
  private final NationsRepository nationsRepository;
 
  @GetMapping("/")
  public Page<Nation> pageableTest() {
 
    Pageable firstPageWithTwoElements = PageRequest.of(12);
    return nationsRepository.findAll(firstPageWithTwoElements);
  }
}
cs

 

4. 결과

    ˙ 페이지 당 건수 및 원하는 쪽수에 해당하는 데이터를 불러온다.

 

    ˙ 프로젝트 다운로드

pageable-jpa-example.zip
0.12MB

 

반응형

+ Recent posts