오류 내용
Reply List 기능을 구현하던 도중, 자꾸 Axios BAD RESPONSE 500 에러가 떠서 로그를 살펴보니 Page index must not be less than zero 오류라고 떴다.
오류 원인과 해결
콘솔에 page를 찍으면 1이 나오고, 쿼리 스트링에도 page=1이라고 나오는데 오류가 뜨는 명확한 이유를 아직 모르겠지만 일단 ReplyServiceImpl에서 page가 0 이하일 때 1로 대체해주는 로직을 추가해줬더니 정상적으로 동작이 됐다. 오류 원인을 조금 더 살펴봐야겠다.
@Override
public PageResponseDTO<ReplyDTO> list(ReplyPageReqeustDTO dto) {
boolean last = dto.isLast();
int pageNum = dto.getPage();
if(last){
long totalCount = repository.getCountReply(dto.getBno());
pageNum = (int)(Math.ceil(totalCount / (double)dto.getSize()));
pageNum = pageNum <= 0 ? 1 : pageNum;
}
Pageable pageable = PageRequest.of(pageNum - 1, dto.getSize(), Sort.by("rno").ascending());
Page<Reply> result = repository.listReply(dto.getBno(), pageable);
long totalReplyCount = result.getTotalElements();
List<ReplyDTO> dtoList = result.get().map(entity -> modelMapper.map(entity, ReplyDTO.class)).collect(Collectors.toList());
PageResponseDTO<ReplyDTO> responseDTO = new PageResponseDTO<>(dtoList, totalReplyCount, dto);
responseDTO.setPage(pageNum);
return responseDTO;
}
'오류 일지' 카테고리의 다른 글
[H2DB] expected 'identifier' (0) | 2023.10.27 |
---|---|
[React] Cannot destructure property 'basename' of 'react__WEBPACK_IMPORTED_MODULE_0__.useContext(...)' as it is null. (0) | 2023.10.19 |
In aggregated query without GROUP BY (0) | 2023.09.24 |
Type definition error (0) | 2023.09.04 |
[페이징] 페이지 버튼 안 먹힘 (0) | 2023.09.03 |