From 7e7a1122fa7f62977e4d0b4a3f1dcbe495885f7e Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 7 Aug 2025 22:40:06 +0900 Subject: [PATCH] =?UTF-8?q?refactor(character):=20=EC=B5=9C=EA=B7=BC=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=EB=90=9C=20=EC=BA=90=EB=A6=AD=ED=84=B0=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 조회할 때부터 isActive = true, limit 10개를 불러오도록 리팩토링 - ChatCharacterRepository에 findByIsActiveTrueOrderByCreatedAtDesc 메소드 추가 - ChatCharacterService의 getNewCharacters 메소드 수정 --- .../chat/character/repository/ChatCharacterRepository.kt | 5 +++++ .../sodalive/chat/character/service/ChatCharacterService.kt | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterRepository.kt index 464e1b1..59a617c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/repository/ChatCharacterRepository.kt @@ -14,6 +14,11 @@ interface ChatCharacterRepository : JpaRepository { fun findByName(name: String): ChatCharacter? fun findByIsActiveTrue(pageable: Pageable): Page + /** + * 활성화된 캐릭터를 생성일 기준 내림차순으로 조회 + */ + fun findByIsActiveTrueOrderByCreatedAtDesc(pageable: Pageable): List + /** * 이름, 설명, MBTI, 태그로 캐릭터 검색 */ diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterService.kt index ba958cc..574ee72 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/service/ChatCharacterService.kt @@ -11,6 +11,7 @@ import kr.co.vividnext.sodalive.chat.character.repository.ChatCharacterHobbyRepo import kr.co.vividnext.sodalive.chat.character.repository.ChatCharacterRepository import kr.co.vividnext.sodalive.chat.character.repository.ChatCharacterTagRepository import kr.co.vividnext.sodalive.chat.character.repository.ChatCharacterValueRepository +import org.springframework.data.domain.PageRequest import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional @@ -48,10 +49,7 @@ class ChatCharacterService( */ @Transactional(readOnly = true) fun getNewCharacters(limit: Int = 10): List { - return chatCharacterRepository.findAll() - .filter { it.isActive } - .sortedByDescending { it.createdAt } - .take(limit) + return chatCharacterRepository.findByIsActiveTrueOrderByCreatedAtDesc(PageRequest.of(0, limit)) } /**