Query Methods
를 활용하여 'contents' 필드에 주어진 키워드가 포함된 메모를 검색하는 API를 개발하십시오.Controller
는 keyword
를 쿼리 스트링으로 수신하여 메모 조회 API를 제공합니다.http://localhost:8080/api/memos/contents?keyword=
getMemosByKeyword
MemoService
클래스 내에 getMemosByKeyword
메서드를 구현하십시오.Postman
어플리케이션을 사용하여 수행하십시오.구현 코드
MemoRepository
public interface MemoRepository extends JpaRepository<Memo, Long> {
List<Memo> findAllByContentsContainingOrderByModifiedAtDesc(String keyword);
}
설명 contents
필드에서 주어진 keyword
를 포함하는 데이터를 찾고, 그 결과를 'ModifiedAt' 기준 내림차순으로 정렬합니다.
MemoService
public List<MemoResponseDto> getMemosByKeyword(String keyword) {
return memoRepository.findAllByContentsContainingOrderByModifiedAtDesc(keyword)
.stream()
.map(MemoResponseDto::new)
.collect(Collectors.toList());
}
Controller
@GetMapping("/memos/contents")
public List<MemoResponseDto> getMemosByKeyword(@RequestParam String keyword) {
return memoService.getMemosByKeyword(keyword);
}
@ModelAttribute
어노테이션 사용 문제.@RequestParam
어노테이션으로 교체하여 문제 해결. 결과는 두 번째 이미지 URL에서 확인 가능.