diff --git a/src/main/java/roomescape/model/reservation/ReservationService.java b/src/main/java/roomescape/model/reservation/ReservationService.java index 962b5ca6e..0883e51fd 100644 --- a/src/main/java/roomescape/model/reservation/ReservationService.java +++ b/src/main/java/roomescape/model/reservation/ReservationService.java @@ -34,7 +34,8 @@ public Reservation addReservation(ReservationRequest reservationRequest) { throw new InvalidReservationParameterException("예약 내용에 누락된 부분이 있습니다."); } - Time time = reservationRequest.getTime(); + Long timeId = reservationRequest.getTime(); + Time time = findTimeById(timeId); Reservation reservation = new Reservation( reservationRequest.getName(), @@ -60,6 +61,14 @@ public Reservation addReservation(ReservationRequest reservationRequest) { return reservation; } + private Time findTimeById(Long timeId) { + String sql = "SELECT id, time FROM time WHERE id = ?"; + return jdbcTemplate.queryForObject(sql, (rs, rowNum) -> new Time( + rs.getLong("id"), + rs.getString("time") + ), timeId); + } + public void deleteReservation(Long id) { int rowAffected = reservationRepository.deleteById(id); if (rowAffected == 0) { diff --git a/src/main/java/roomescape/model/time/Time.java b/src/main/java/roomescape/model/time/Time.java index c2f78d3c3..419d7444c 100644 --- a/src/main/java/roomescape/model/time/Time.java +++ b/src/main/java/roomescape/model/time/Time.java @@ -16,6 +16,11 @@ public Time(@JsonProperty("time") String time) { this.time = time; } + public Time(Long id, String time) { + this.id = id; + this.time = time; + } + public Long getId() { return id; }