You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
검색 기능이 LikePatterns(검색어 %·_ 이스케이프)를 쓰는 곳은 공지뿐이고, 물품 검색과 회비 목록의 이름·학번 검색(회원 ID 조회)은 각자 다르게 구현되어 있다. 검색어 처리를 공지와 같은 방식으로 통일한다.
회비 목록의 이름·학번 검색(관리자 회비 확인 요청 목록, 내부 조회 MemberService.searchIdsByKeyword): LIKE CONCAT('%', :keyword, '%')를 이스케이프 없이 써서 %만 입력해도 모든 회원이 검색된다(버그). 앞뒤 공백도 정리하지 않는다.
물품 검색(학생 물품 목록): LOCATE로 구현되어 결과는 올바르지만 공지와 방식이 다르다.
검색어 정리(공백뿐이면 검색 없음, 앞뒤 공백 제거): 공지는 서비스, 물품은 요청 파라미터, 회원은 UseCase로 제각각이다. 이스케이프와 함께 LikePatterns.escape에서 한 번에 처리하도록 통일한다.
📝 작업 상세 내용
회원 ID 조회(searchIdsByKeyword) 쿼리에 ESCAPE '!'를 붙이고 MemberRepositoryImpl에서 LikePatterns.escape를 적용한다
물품 검색 쿼리를 LIKE CONCAT('%', :keyword, '%') ESCAPE '!'로 바꾸고 ItemRepositoryImpl에서 LikePatterns.escape를 적용한다
Activity
Merge pull request #163 from billilge/fix/#162-unify-search-like-escape