SpringBoot JPA Paging을 적용해보자

Jae Hun Lee·2023년 2월 21일
0

SpringBoot JPA Paging을 적용해보자

Controller

@GetMapping("api/posts") // 전체 조회
    public List<BoardResponseDto> getBoard(Pageable pageable){
        return boardService.getBoard(pageable);
    }

controller에서 Pageable로 값을 받아준다 넘겨받을수 있는 값은 다음과 같다
page : 페이지 번호
size : 페이지당 개수
sort : 정렬할 ID, (오름차순|내림차순)
작성하면 아래와 같다
http://localhost:8080/api/posts?page=0&size=5&sort=id,desc

Service

@Transactional(readOnly = true)
    public List<BoardResponseDto> getBoard(Pageable pageable){ // BoardResponseDto형식의 리스트로 리턴
        Page<Board> boardPage = boardRepository.findAll(pageable);
        List<Board> board = boardPage.getContent();
}

Controller에서 값을 넘겨받아 Page<Board>형태로 repository에서 찾은 값을

getContent()로 List<Board>로 변환해준다

Repository

@Repository
public interface BoardRepository extends JpaRepository<Board,Long> {
        Page<Board> findAll(Pageable pageable);
}

findAll에 Pageable을 넣어주면 Page<Board>로 받을수밖에 없어서
Service에서 getContent로 List로 변환해주었다.

출력 시 List로 잘 출력되는 것을 확인 할 수 있다

profile
기록을 남깁니다

0개의 댓글