@GetMapping
public ResponseEntity<Page<GetPostResponseDto>> gets(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size
) {
Page<GetPostResponseDto> responseDtos = postService.gets(page, size);
return ResponseEntity.ok(responseDtos);
}
public Page<GetPostResponseDto> gets(int page, int size) {
PageRequest pageRequest = PageRequest.of(Math.max(0, page), size, Sort.Direction.DESC, "createdAt");
Page<PostEntity> pagedPosts = postRepository.findAll(pageRequest);
List<GetPostResponseDto> postResponses = pagedPosts.stream()
.map(GetPostResponseDto::new)
.toList();
return new PageImpl<>(postResponses, pageRequest, pagedPosts.getTotalElements());
}
Math.max๋ฅผ ํด์ฃผ๋ ์ด์
- ์์ ๊ฐ์ด ๋ค์ด๊ฐ์ง ๋ชปํ๊ฒ ํ๊ธฐ ์ํด์
๋ฌธ์ ์
- Fetch Join์ ํ์ด์ง์ด ์ ์ฉ๋์ง ์๊ณ , ์กฐ๊ฑด์ ํด๋นํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ฑ๋ฅ์ ์ ํ์ํจ๋ค.