diff --git a/src/main/java/com/movelog/domain/record/application/KeywordService.java b/src/main/java/com/movelog/domain/record/application/KeywordService.java index ee8b155..b946bf5 100644 --- a/src/main/java/com/movelog/domain/record/application/KeywordService.java +++ b/src/main/java/com/movelog/domain/record/application/KeywordService.java @@ -14,6 +14,7 @@ import com.movelog.global.config.security.token.UserPrincipal; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,10 +35,11 @@ public class KeywordService { public List searchKeywordInStats(UserPrincipal userPrincipal, String keyword) { - User user = validUserById(userPrincipal); + validUserById(userPrincipal); // 검색어를 포함한 키워드 리스트 조회 - List keywords = keywordRepository.findAllByUserAndKeywordContaining(user, keyword); + List keywords = keywordRepository.findAllKeywordStartingWith(keyword); + log.info("Searching for keywords starting with: {}", keyword); // 기록이 많은 순서대로 정렬 keywords = sortKeywordByRecordCount(keywords); @@ -123,8 +125,8 @@ private double roundToTwoDecimal(double value) { } private User validUserById(UserPrincipal userPrincipal) { - Optional userOptional = userService.findById(userPrincipal.getId()); - // Optional userOptional = userRepository.findById(5L); + // Optional userOptional = userService.findById(userPrincipal.getId()); + Optional userOptional = userRepository.findById(5L); if (userOptional.isEmpty()) { throw new UserNotFoundException(); } return userOptional.get(); } diff --git a/src/main/java/com/movelog/domain/record/domain/repository/KeywordRepository.java b/src/main/java/com/movelog/domain/record/domain/repository/KeywordRepository.java index 0ebae04..eb543df 100644 --- a/src/main/java/com/movelog/domain/record/domain/repository/KeywordRepository.java +++ b/src/main/java/com/movelog/domain/record/domain/repository/KeywordRepository.java @@ -5,6 +5,7 @@ import com.movelog.domain.record.domain.VerbType; import com.movelog.domain.user.domain.User; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; import java.util.List; @@ -21,4 +22,8 @@ public interface KeywordRepository extends JpaRepository { List findAllByUserAndKeywordContaining(User user, String keyword); + @Query("SELECT k FROM Keyword k WHERE LOWER(k.keyword) LIKE LOWER(CONCAT(:keyword, '%'))") + List findAllKeywordStartingWith(String keyword); + + }