반응형
1. 시험환경
˙ SpringBoot
˙ Spring Data JPA
˙ MariaDB
2. 목적
˙ Pageable 기능을 이용하여 데이터 가져오는 방법을 알아보자.
3. 적용
① Spring Data JPA를 이용하여 DB 테이블 및 테스트 데이터를 생성하였다.
- URL : https://languagestory.tistory.com/244
② 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(1, 2);
return nationsRepository.findAll(firstPageWithTwoElements);
}
}
|
cs |
4. 결과
˙ 페이지 당 건수 및 원하는 쪽수에 해당하는 데이터를 불러온다.
˙ 프로젝트 다운로드
반응형
'스프링 프레임워크' 카테고리의 다른 글
vscode(visual studio code)에서 spring boot 프로젝트 초기화 (0) | 2023.05.23 |
---|---|
[JAVA] of와 from 사용 이유[차이점] (0) | 2023.05.14 |
Spring Data Rest를 이용하여 Rest API 구축하기 (0) | 2023.05.01 |
Spring Data JPA 설정 및 초기 데이터 생성 (0) | 2023.05.01 |
Springboot 프로젝트와 React.js 프로젝트 연동 배포 (0) | 2023.03.13 |