수정일을 기준으로 시작 날짜와, 끝 날짜를 입력 받아 해당 기간 내에 수정된 피드 목록을 불러와는 기능을 구현하고자 했다.

@GetMapping
    public ResponseEntity<Page<FeedResponseDto>> findAllFeed(
            @PageableDefault(size = 10, sort = "updatedAt", direction = Sort.Direction.DESC) Pageable pageable,
            @RequestParam(required = false) String startDate,
            @RequestParam(required = false) String endDate) {
        Page<FeedResponseDto> feedResponseDtosList = feedService.findAllFeed(startDate, endDate, pageable);
        return new ResponseEntity<>(feedResponseDtosList, HttpStatus.OK);
    }

@RequestParam(required = false)로 필수 파라미터가 아니게 하여, 값이 있으면 해당 기간별 조회,

없으면 전체 기간을 조회 하고자 했다.

파라미터가 없을 때 JAVA에서 NULL을 날짜 최솟값과, 최댓값으로 변경되도록 구현하였다.

LocalDateTime start = (startDate == null) ? LocalDateTime.MIN : LocalDate.parse(startDate).atStartOfDay();
LocalDateTime end = (endDate == null) ? LocalDateTime.MAX : LocalDate.parse(endDate).atTime(23, 59, 59);

위 코드는 null일 경우 LocalDateTime.MIN 또는 LocalDateTime.MAX 을 하고

사용자가 값을 입력했을 경우에는 String 타입을 LocalDateTime으로 파싱을 해주어 feedList = feedRepository.findAllByUpdatedAtBetween(start, end, pageable);

목록을 불러오게끔 구현하였다.

image.png

위 예시와 같이 파라미터에 날짜를 넣어주면 해당 기간 내에 피드 목록을 잘 불러온다.

발생한 문제

파라미터가 없을 경우에 모든 피드목록을 불러오길 기대했지만…

image.png

빈 배열이 반환되었다.

문제를 찾기위해 1시간이라는 시간을 소비하였지만 원인은 생각보다 간단했다.

원인

<JAVA>