From dae2b4102fd02cb9d8972fa66a97a7ab0dd328d0 Mon Sep 17 00:00:00 2001 From: yeonjae02 <0yeonjae2@naver.com> Date: Tue, 14 Oct 2025 02:37:17 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EC=A0=80=EC=9E=A5=20=EB=B0=8F=20=EC=83=88=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EA=B0=80=EC=A0=B8=EC=98=A4?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/ClothingRecommendationRepository.java | 3 +++ .../domain/ai_model/service/RecommendationService.java | 6 +++++- .../domain/member/service/MyAccountService.java | 9 +++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/repository/ClothingRecommendationRepository.java b/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/repository/ClothingRecommendationRepository.java index a31947b..4802fb3 100644 --- a/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/repository/ClothingRecommendationRepository.java +++ b/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/repository/ClothingRecommendationRepository.java @@ -1,7 +1,9 @@ package com.howWeather.howWeather_backend.domain.ai_model.repository; import com.howWeather.howWeather_backend.domain.ai_model.entity.ClothingRecommendation; +import jakarta.persistence.QueryHint; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.QueryHints; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; @@ -10,6 +12,7 @@ @Repository public interface ClothingRecommendationRepository extends JpaRepository { + @QueryHints({ @QueryHint(name = "javax.persistence.cache.retrieveMode", value = "BYPASS") }) List findByMemberIdAndDate(Long memberId, LocalDate date); void deleteByDateBefore(LocalDate date); diff --git a/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/service/RecommendationService.java b/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/service/RecommendationService.java index 1eae214..c0e1bbc 100644 --- a/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/service/RecommendationService.java +++ b/src/main/java/com/howWeather/howWeather_backend/domain/ai_model/service/RecommendationService.java @@ -49,7 +49,11 @@ public List getRecommendList(Member member) { List result = new ArrayList<>(); for (ClothingRecommendation recommendation : modelPredictList) { RecommendPredictDto dto = makeResultForPredict(closet, recommendation, member); - if (dto.getUppersTypeList() != null && !dto.getUppersTypeList().isEmpty()) { + + boolean isUppersExist = dto.getUppersTypeList() != null && !dto.getUppersTypeList().isEmpty(); + boolean isFeelingExist = dto.getFeelingList() != null && !dto.getFeelingList().isEmpty(); + + if (isUppersExist && isFeelingExist) { result.add(dto); } } diff --git a/src/main/java/com/howWeather/howWeather_backend/domain/member/service/MyAccountService.java b/src/main/java/com/howWeather/howWeather_backend/domain/member/service/MyAccountService.java index 1d72f75..e6385ed 100644 --- a/src/main/java/com/howWeather/howWeather_backend/domain/member/service/MyAccountService.java +++ b/src/main/java/com/howWeather/howWeather_backend/domain/member/service/MyAccountService.java @@ -20,6 +20,7 @@ import com.howWeather.howWeather_backend.global.cipher.AESCipher; import com.howWeather.howWeather_backend.global.exception.CustomException; import com.howWeather.howWeather_backend.global.exception.ErrorCode; +import jakarta.persistence.EntityManager; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -41,10 +42,10 @@ @Service @RequiredArgsConstructor public class MyAccountService { + private final EntityManager entityManager; private final WeatherForecastRepository weatherForecastRepository; private final MemberRepository memberRepository; private final ClothingRecommendationRepository recommendationRepository; - private final RecommendationService recommendationService; private final DailyCombinationScheduler dailyCombinationScheduler; private final AiInternalService aiInternalService; private final RestTemplate restTemplate; @@ -320,6 +321,8 @@ public void saveRecommendationsInternal(Map encryptedData, Strin } log.info("[추천 데이터 저장 완료] memberId={}", member.getId()); + recommendationRepository.flush(); + entityManager.clear(); } else { List existingData = recommendationRepository.findByMemberIdAndDate(member.getId(), LocalDate.now()); @@ -339,8 +342,9 @@ public void saveRecommendationsInternal(Map encryptedData, Strin .build(); recommendationRepository.save(updatedEntity); - recommendationRepository.flush(); } + recommendationRepository.flush(); + entityManager.clear(); log.info("[기존 데이터 지역명 업데이트 완료] memberId={}", member.getId()); } @@ -352,6 +356,7 @@ public void saveRecommendationsInternal(Map encryptedData, Strin throw new CustomException(ErrorCode.UNKNOWN_ERROR, "지역명 업데이트 중 오류가 발생했습니다."); } } + private ClothingRecommendation convertToEntityWithBuilder(ModelRecommendationResult dto, Long memberId, String regionName) { return ClothingRecommendation.builder() .memberId(memberId)