오늘 학습한 내용
- Spring 입문 학습
- 알고리즘 문풀
숙제 설명
- Query Methods 기능을 사용하여 내용(contents)에 특정 키워드가 포함된 메모를 조회하는 API를 구현
- 정렬 방법은 수정 시간을 기준으로 내림차순을 적용
해결 과정
Query Methods에서 특정 키워드가 포함(contains)되어있는 메소드를 정의하기 위해서 우선 열심히 검색을 해봤다.
참고한 블로그는 다음과 같다.
https://www.baeldung.com/spring-jpa-like-queries
그래서 작성한 Query Methods는 다음과 같다.
List<Memo> findAllByContentsContainsOrderByModifiedAtDesc();
Service는 다음과 같이 작성했고
public List<MemoResponseDto> getMemosByKeyword(String keyword) {
// DB 조회
return memoRepository.findAllByContentsContainsOrderByModifiedAtDesc(keyword).stream().map(MemoResponseDto::new).toList();
}
Controller는 다음과 같이 작성했다.
@GetMapping("/memos/contents")
public List<MemoResponseDto> getMemosByKeyword(String keyword) {
return memoService.getMemosByKeyword(keyword);
}
이대로 실행하면 될 줄 알았는데 여러가지 에러가 ..
계속해서 코드를 보니 keyword라는 매개변수가 repository부터 controller까지 이어져서 처리가 되지 않았다.
즉 쿼리 메소드에서 파라미터를 적용하지 않았다.
쿼리 메소드에서 파라미터를 적용한다는 것은 where 절 뒤에 값을 동적으로 처리하는 것이다.
바꾼 메소드는 다음과 같다.
List<Memo> findAllByContentsContainsOrderByModifiedAtDesc(String keyword);
느낀점
Spring 학습을 시작한지 2일차인데 매우 어려운 것 같다..
알아야 할 내용도 많고 구조를 깊게 이해하려고하면 너무 복잡해지고 이해하기 어려운 것 같다.
그래도 포기하지 않고 꾸준히 노력해보자!
'TIL&WIL' 카테고리의 다른 글
| 2023-06-16 TIL (Spring 개인 과제) (0) | 2023.06.16 |
|---|---|
| 2023-06-15 TIL (Spring 개인 과제) (0) | 2023.06.15 |
| 2023-06-13 TIL (Spring 학습, 키오스크 만들기 취소 기능 완성) (0) | 2023.06.13 |
| 2023-06-12 TIL (Spring 입문 학습, Java 키오스크 취소 기능) (0) | 2023.06.12 |
| 2023-06 2주차 WIL (Java 팀 과제, 알고리즘 문풀) (0) | 2023.06.11 |