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) ); 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,