From 46b925c698f5605eb102ae271113bae5b3e89544 Mon Sep 17 00:00:00 2001 From: minjonyyy Date: Tue, 29 Apr 2025 14:39:05 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix=20:=20fetch=20join=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/parkez/payment/service/PaymentService.java | 2 ++ .../domain/repository/ReservationRepository.java | 11 ++++++++++- .../parkez/reservation/service/ReservationReader.java | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/parkez/payment/service/PaymentService.java b/src/main/java/com/parkez/payment/service/PaymentService.java index 346d2c5d..ccd14ca8 100644 --- a/src/main/java/com/parkez/payment/service/PaymentService.java +++ b/src/main/java/com/parkez/payment/service/PaymentService.java @@ -24,12 +24,14 @@ import com.parkez.user.domain.entity.User; import com.parkez.user.service.UserReader; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import java.time.LocalDateTime; import java.util.List; +@Slf4j @Service @RequiredArgsConstructor public class PaymentService { diff --git a/src/main/java/com/parkez/reservation/domain/repository/ReservationRepository.java b/src/main/java/com/parkez/reservation/domain/repository/ReservationRepository.java index 37da53b2..4ce55cf6 100644 --- a/src/main/java/com/parkez/reservation/domain/repository/ReservationRepository.java +++ b/src/main/java/com/parkez/reservation/domain/repository/ReservationRepository.java @@ -94,4 +94,13 @@ List findExpiredReservations( ); Optional findByParkingZone_IdAndStartDateTimeAndEndDateTime(Long parkingZoneId, LocalDateTime startDateTime, LocalDateTime endDateTime); -} + + @Query(""" + SELECT r + FROM Reservation r + JOIN FETCH r.user + JOIN FETCH r.parkingZone + WHERE r.id = :id + """) + Optional findByIdWithUserAndParkingZone(@Param("id") Long reservationId); +} \ No newline at end of file diff --git a/src/main/java/com/parkez/reservation/service/ReservationReader.java b/src/main/java/com/parkez/reservation/service/ReservationReader.java index 6d3cce5f..6780b555 100644 --- a/src/main/java/com/parkez/reservation/service/ReservationReader.java +++ b/src/main/java/com/parkez/reservation/service/ReservationReader.java @@ -37,7 +37,7 @@ public Page findMyReservations(Long userId, PageReques public Reservation findMyReservation(Long userId, Long reservationId) { - Reservation reservation = reservationRepository.findById(reservationId).orElseThrow( + Reservation reservation = reservationRepository.findByIdWithUserAndParkingZone(reservationId).orElseThrow( () -> new ParkingEasyException(ReservationErrorCode.NOT_FOUND_RESERVATION) ); From 8b77dc186bc9d989d63ae0d204f37a86b3e06841 Mon Sep 17 00:00:00 2001 From: minjonyyy Date: Tue, 29 Apr 2025 14:45:08 +0900 Subject: [PATCH 2/2] =?UTF-8?q?test=20:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parkez/reservation/service/ReservationReaderTest.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/parkez/reservation/service/ReservationReaderTest.java b/src/test/java/com/parkez/reservation/service/ReservationReaderTest.java index cbea4df1..a20c418f 100644 --- a/src/test/java/com/parkez/reservation/service/ReservationReaderTest.java +++ b/src/test/java/com/parkez/reservation/service/ReservationReaderTest.java @@ -119,7 +119,7 @@ class GetReservationByUserId { Reservation reservation = createReservation(reservationId, user); - given(reservationRepository.findById(anyLong())).willReturn(Optional.of(reservation)); + given(reservationRepository.findByIdWithUserAndParkingZone(anyLong())).willReturn(Optional.of(reservation)); // when Reservation result = reservationReader.findMyReservation(userId, reservationId); @@ -136,8 +136,6 @@ class GetReservationByUserId { Long userId = 1L; Long reservationId = -1L; - given(reservationRepository.findById(anyLong())).willReturn(Optional.empty()); - // when & then ParkingEasyException exception = assertThrows(ParkingEasyException.class, () -> reservationReader.findMyReservation(userId, reservationId)); @@ -155,7 +153,7 @@ class GetReservationByUserId { Reservation reservation = createReservation(reservationId, differentUser); - given(reservationRepository.findById(anyLong())).willReturn(Optional.of(reservation)); + given(reservationRepository.findByIdWithUserAndParkingZone(anyLong())).willReturn(Optional.of(reservation)); // when & then ParkingEasyException exception = assertThrows(ParkingEasyException.class,