TIL - 22.12.15

자라나는 ㅇㅅㅇ개발자·2022년 12월 15일
0

TIL

목록 보기
33/126

Spring 기초강의 3주차 숙제

타임라인 서비스가 불러오는 메모 목록의 시간을, 조회 시간으로부터 24시간 이내로 바꿔보세요.

힌트 1) spring jpa localtime between 라고 구글링해보세요.
힌트2) 지금은 LocalDateTime.now(), 하루 전은 LocalDateTime.now().minusDays(1) 입니다.


Repository

public interface MemoRepository extends JpaRepository<Memo, Long> {
    List<Memo> findAllByOrderByModifiedAtDesc();
}

기존의 생성시간 기준으로 최신 게시물을 내림차순으로 정렬하는 메모에서

public interface MemoRepository extends JpaRepository<Memo, Long> {
    List<Memo> findAllByModifiedAtBetweenOrderByModifiedAtDesc(LocalDateTime start, LocalDateTime end);
}

findAll : 모두 찾아라
ByModifiedAtBetween : 수정된 시간들 사이(start, end)에서
OrderByModifiedAtDesc : 시간을 기준으로 내림차순


MemoController

@GetMapping("/api/memos")
public List<Memo> readMemo() {
    return memoRepository.findAllByOrderByModifiedAtDesc();
}

원래 이거에서 Repository가 바뀌었으니

@GetMapping("/api/memos")
public List<Memo> readMemo() {
    return memoRepository.findAllByModifiedAtBetweenOrderByModifiedAtDesc(LocalDateTime.now().minusDays(1), LocalDateTime.now());
}

오류가 생기지 않는거로 봐선 이 형식도 문제없을거 같지만...

답지는 아래와 같다.

@GetMapping("/api/memos")
public List<Memo> getMemos() {
    LocalDateTime start = LocalDateTime.now().minusDays(1);
    LocalDateTime end = LocalDateTime.now();
    return memoRepository.findAllByModifiedAtBetweenOrderByModifiedAtDesc(start, end);
}

0개의 댓글