diff --git a/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleRepository.kt b/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleRepository.kt index 4f8f4275..15850467 100644 --- a/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleRepository.kt +++ b/service/src/main/kotlin/com/sangdol/roomescape/schedule/infrastructure/persistence/ScheduleRepository.kt @@ -134,14 +134,14 @@ interface ScheduleRepository : JpaRepository { s.id FROM schedule s + LEFT JOIN + reservation r + ON + r.schedule_id = s.id AND r.status IN ('PENDING', 'PAYMENT_IN_PROGRESS') WHERE s.status = 'HOLD' AND s.hold_expired_at <= :now - AND NOT EXISTS ( - SELECT 1 - FROM reservation r - WHERE r.schedule_id = s.id AND (r.status = 'PENDING' OR r.status = 'PAYMENT_IN_PROGRESS') - ) + AND r.id IS NULL FOR UPDATE SKIP LOCKED """, nativeQuery = true )