refactor: ReservationRepository 코틀린 전환

This commit is contained in:
이상진 2025-07-18 16:00:16 +09:00
parent 403ba3c40b
commit 8a09eb045f

View File

@ -1,32 +1,31 @@
package roomescape.reservation.infrastructure.persistence; package roomescape.reservation.infrastructure.persistence
import java.util.List; import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.JpaSpecificationExecutor
import org.springframework.data.jpa.repository.Modifying
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param
import roomescape.reservation.web.MyReservationResponse
import org.springframework.data.jpa.repository.JpaRepository; interface ReservationRepository
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; : JpaRepository<ReservationEntity, Long>, JpaSpecificationExecutor<ReservationEntity>
import org.springframework.data.jpa.repository.Modifying; {
import org.springframework.data.jpa.repository.Query; fun findByReservationTime(reservationTime: ReservationTimeEntity): List<ReservationEntity>
import org.springframework.data.repository.query.Param;
import roomescape.reservation.web.MyReservationResponse; fun findByThemeId(themeId: Long): List<ReservationEntity>
public interface ReservationRepository @Modifying
extends JpaRepository<ReservationEntity, Long>, JpaSpecificationExecutor<ReservationEntity> { @Query("""
List<ReservationEntity> findByReservationTime(ReservationTimeEntity reservationTime);
List<ReservationEntity> findByThemeId(Long themeId);
@Modifying
@Query("""
UPDATE ReservationEntity r UPDATE ReservationEntity r
SET r.reservationStatus = :status SET r.reservationStatus = :status
WHERE r.id = :id WHERE r.id = :id
""") """)
int updateStatusByReservationId(@Param(value = "id") Long reservationId, fun updateStatusByReservationId(
@Param(value = "status") ReservationStatus statusForChange); @Param(value = "id") reservationId: Long,
@Param(value = "status") statusForChange: ReservationStatus
): Int
@Query(""" @Query("""
SELECT EXISTS ( SELECT EXISTS (
SELECT 1 FROM ReservationEntity r SELECT 1 FROM ReservationEntity r
WHERE r.theme.id = r2.theme.id WHERE r.theme.id = r2.theme.id
@ -37,9 +36,9 @@ public interface ReservationRepository
FROM ReservationEntity r2 FROM ReservationEntity r2
WHERE r2.id = :id WHERE r2.id = :id
""") """)
boolean isExistConfirmedReservation(@Param("id") Long reservationId); fun isExistConfirmedReservation(@Param("id") reservationId: Long): Boolean
@Query(""" @Query("""
SELECT new roomescape.reservation.web.MyReservationResponse( SELECT new roomescape.reservation.web.MyReservationResponse(
r.id, r.id,
t.name, t.name,
@ -56,5 +55,5 @@ public interface ReservationRepository
ON p.reservation = r ON p.reservation = r
WHERE r.member.id = :memberId WHERE r.member.id = :memberId
""") """)
List<MyReservationResponse> findMyReservations(Long memberId); fun findMyReservations(memberId: Long): List<MyReservationResponse>
} }