게시물 목록 조회 기능에서 페이징 기능을 추가하여 구현해 보았다.
//Controller.java
@GetMapping("")
public Page<PostListResponseDto> getPostList(@RequestParam("page") int page,
@RequestParam("size") int size,
@RequestParam("sortBy") String sortBy,
@RequestParam("isAsc") boolean isAsc
){
return postService.getPostList(page,size,sortBy,isAsc);
}
컨트롤러단에서 파라미터로 페이징 기능에 필요한 데이터들을 받아온다.
public Page<PostListResponseDto> getPostList(int page, int size, String sortBy, boolean isAsc) {
Sort.Direction direction = isAsc ? Sort.Direction.ASC : Sort.Direction.DESC;
Sort sort = Sort.by(direction, sortBy);
Pageable pageable = PageRequest.of(page, size, sort);
Page<Post> postList = postRepository.findAll(pageable);
return postList.map(PostListResponseDto::new);
}
Page <Post>를 Page <PostListResponseDto>로 변환시켜서 반환해 준다.
+추가
//Controller.java
@GetMapping("")
public List<PostListResponseDto> getPostList(@RequestParam("page") int page,
@RequestParam("size") int size,
@RequestParam("sortBy") String sortBy,
@RequestParam("isAsc") boolean isAsc
){
return postService.getPostList(page,size,sortBy,isAsc);
}
public List<PostListResponseDto> getPostList(int page, int size, String sortBy, boolean isAsc) {
Sort.Direction direction = isAsc ? Sort.Direction.ASC : Sort.Direction.DESC;
Sort sort = Sort.by(direction, sortBy);
Pageable pageable = PageRequest.of(page, size, sort);
Page<Post> postList = postRepository.findAll(pageable);
return postList.map(PostListResponseDto::new).getContent();
}
List로 변환해 반환해 준다.
'개발일지' 카테고리의 다른 글
20231220 - 프로그래머스/131128 (0) | 2023.12.20 |
---|---|
20231219 - 엔티티 연관관계(게시물, 유저, 댓글) (0) | 2023.12.19 |
20231217 - Errors (1) | 2023.12.18 |
20231214 - 프로그래머스/42840 (0) | 2023.12.14 |
20231213 - 유효성 검사 클라이언트로 반환하기 (0) | 2023.12.13 |