지난번 포스팅에서 차량 이름으로 게시글을 검색하는 기능을 구현하였다.
이번에는 category(카테고리)를 만들어 차량이름 이외에 작성자, 지역도 검색조건으로 지정해서 검색하는
기능을 구현해 보려고 한다.
방법은 매우 간단하다.
차량이름(carName)으로 검색하는 메서드와 같이 컬럼명만 바꿔서 2가지 메서드를
CarRepository에 추가해준다.
그후 어떻게 구현해야 할지 생각을 해야한다.
기존의 controller검색 기능에서는 param을 3개(keyword, page, size) 받아오고 있었는데
카테고리에 대한 정보도 필요하기 때문에 category param을 추가해서 같이 받아오도록 해준다.
그리고 service로 받아온 4개의 변수를 넘겨준다.
그 다음사용할 메서드가 3개가 있기 때문에 service에서 받아온 카테고리별로 if문을 사용하여
그에 맞는 카테고리에 대한 메서드를 반환시켜 주면 된다.
category에 문자열 "차량명"이 들어오면 findCarByCarNameContainingAndIsDel 메서드 반환
category에 문자열 "지역"이 들어오면 findCarByAreaContainingAndIsDel 메서드 반환
category에 문자열 "작성자"가 들어오면 findCarByAuthorContainingAndIsDel 메서드 반환
각 메서드는 받아온 keyword를 가지고 각 메서드를 수행하게 된다.
결과를 우선 PostMan으로 확인해보자
param에 category는 작성자로 지정,
홍길동이 쓴 글을 검색하기위해 keyword는 홍길,
page는 0, size는 5로 값을 실어 주었다.
이제 홍길동이 쓴 글이 모두 나오면 성공인데
홍길동이 쓴 글 4개가 성공적으로 출력 된 것을 볼수 있다!
위 글을 읽고 이해가 어렵다면 이전 포스팅을 참고하도록 하자.
Springboot [게시판 검색기능]
게시판 검색기능은 이전 포스팅의 JPA페이징 처리를 응용하여 만들 수 있다. 우선 생각하여야 할것은 검색기능을 만들었을때 필요한 데이터를 생각하여야 한다. 1. 검색시 나올 글 목록(content) 2.
z00h.tistory.com
'Spring boot' 카테고리의 다른 글
Springboot [회원정보 수정/ 수정시 관련 게시물도 변경] (0) | 2022.09.27 |
---|---|
Springboot [mybatis (테이블 LEFT JOIN)] (0) | 2022.09.26 |
Springboot [게시판 검색기능] (0) | 2022.09.15 |
Springboot [페이징 처리] (JPA) (0) | 2022.09.14 |
Springboot [페이징 처리] (rownum 쿼리 이용) [2] (0) | 2022.09.13 |