diff --git a/src/main/java/umc7th/bulk/dailyMeal/repository/DailyMealRepository.java b/src/main/java/umc7th/bulk/dailyMeal/repository/DailyMealRepository.java index fb4bbb3..61fa1cf 100644 --- a/src/main/java/umc7th/bulk/dailyMeal/repository/DailyMealRepository.java +++ b/src/main/java/umc7th/bulk/dailyMeal/repository/DailyMealRepository.java @@ -1,7 +1,19 @@ package umc7th.bulk.dailyMeal.repository; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import umc7th.bulk.dailyMeal.entity.DailyMeal; +import java.util.Optional; + public interface DailyMealRepository extends JpaRepository { + + @Query(""" + SELECT dm FROM DailyMeal dm + JOIN FETCH dm.mealPlan mp + JOIN FETCH mp.user u + WHERE dm.id = :dailyMealId + """) + Optional findByIdWithMealPlanAndUser(@Param("dailyMealId") Long dailyMealId); } diff --git a/src/main/java/umc7th/bulk/dailyMeal/service/command/DailyMealServiceImpl.java b/src/main/java/umc7th/bulk/dailyMeal/service/command/DailyMealServiceImpl.java index ecc4977..3d04642 100644 --- a/src/main/java/umc7th/bulk/dailyMeal/service/command/DailyMealServiceImpl.java +++ b/src/main/java/umc7th/bulk/dailyMeal/service/command/DailyMealServiceImpl.java @@ -42,7 +42,7 @@ public DailyMeal createDailyMeal(MealPlan mealPlan, MealPlanRequestDTO.DailyMeal @Override public DailyMealResponseDTO.DailyMealGetResponseDTO getDailyMeal(Long userId, Long dailyMealId) { - DailyMeal dailyMeal = dailyMealRepository.findById(dailyMealId).orElseThrow(() -> + DailyMeal dailyMeal = dailyMealRepository.findByIdWithMealPlanAndUser(dailyMealId).orElseThrow(() -> new DailyMealException(DailyMealErrorCode.NOT_FOUND)); if (!dailyMeal.getMealPlan().getUser().getId().equals(userId)) { diff --git a/src/main/java/umc7th/bulk/meal/service/query/MealQueryServiceImpl.java b/src/main/java/umc7th/bulk/meal/service/query/MealQueryServiceImpl.java index e18c370..21ce4e5 100644 --- a/src/main/java/umc7th/bulk/meal/service/query/MealQueryServiceImpl.java +++ b/src/main/java/umc7th/bulk/meal/service/query/MealQueryServiceImpl.java @@ -36,7 +36,7 @@ public class MealQueryServiceImpl implements MealQueryService{ public MealResponseDTO.MealPreviewDTO getMealItems(Long userId, Long dailyMealId, MealType type, Long cursorId, int pagSize) { // 하루 식단 확인 - DailyMeal dailyMeal = dailyMealRepository.findById(dailyMealId).orElseThrow( + DailyMeal dailyMeal = dailyMealRepository.findByIdWithMealPlanAndUser(dailyMealId).orElseThrow( () -> new DailyMealException(DailyMealErrorCode.NOT_FOUND)); if (!dailyMeal.getMealPlan().getUser().getId().equals(userId)) { diff --git a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java index 9d3067f..f5b20c2 100644 --- a/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java +++ b/src/main/java/umc7th/bulk/mealPlan/service/query/MealPlanQueryServiceImpl.java @@ -27,9 +27,8 @@ public class MealPlanQueryServiceImpl implements MealPlanQueryService { @Override public MealPlan getMealPlan(Long userId, Long mealPlanId) { - User user = userRepository.findById(userId).orElseThrow(() -> new UserException(UserErrorCode.USER_NOT_FOUND)); MealPlan mealPlan = mealPlanRepository.findById(mealPlanId).orElseThrow(() -> new MealPlanException(MealPlanErrorCode.MEAL_PLAN_NOT_FOUND)); - if (!mealPlan.getUser().getId().equals(user.getId()) ) { + if (!mealPlan.getUser().getId().equals(userId) ) { throw new CustomException(GeneralErrorCode.FORBIDDEN_403); } return mealPlan;