diff --git a/README.md b/README.md index 61b49e6f..9409a991 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,31 @@ # 간단 스프링 어플리케이션 +## Core +### 8단계 +- [x] 시간 테이블 설정 +- [x] 시간 조회, 추가, 삭제 기능 추가 +- [x] DB 초기 값 설정 +### 9단계 +- [x] 해당 시간이 존재하는 예약이 남아있으르때, 시간 삭제 못하도록 예외처리 +- [x] 중복된 시간(시간의 time값이 같은) DB에 저장하지 못하도록 예외처리 +### 10단계 + +### 고민사항 +- 프로젝트 구조:
+[도메인 우선 vs 레이어 우선](https://codewithandrea.com/articles/flutter-project-structure/) +
+ + +[Repository 계층, 도메인과 영속성 엔티티 사이의 간극](https://kokodakadokok.tistory.com/entry/Repository-%EA%B3%84%EC%B8%B5-%EB%8F%84%EB%A9%94%EC%9D%B8%EA%B3%BC-%EC%97%94%ED%8B%B0%ED%8B%B0-%EC%82%AC%EC%9D%B4%EC%9D%98-%EA%B0%84%EA%B7%B9-%EB%A7%A4%EA%BE%B8%EA%B8%B0) +
+스프링은 기술적으로 편의를 위해서? +데이터베이스 테이블과 Java의 class를 매핑해준 Jpa 기술을 사용하는 것으로 알고 있습니다. +@Entity라는 annotation을 사용하여 정의하는 Class는 Domain과의 간극이 + +- Entity 패키지를 따로 둔 이유?
+Service는 + + ## JDBC ### 5단계 - [x] 데이터베이스 설정 diff --git a/src/main/java/roomescape/service/TimeService.java b/src/main/java/roomescape/service/TimeService.java index bfd13ce6..3a5f260b 100644 --- a/src/main/java/roomescape/service/TimeService.java +++ b/src/main/java/roomescape/service/TimeService.java @@ -36,6 +36,7 @@ public void deleteReservationTime(Long id) { if (!reservations.isEmpty()) { throw new TimeDeleteException("해당 시간 id의 예약이 존재합니다"); } + timeDao.delete(id); } } diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql index dbdb5190..5f5fdc2e 100644 --- a/src/main/resources/schema.sql +++ b/src/main/resources/schema.sql @@ -1,7 +1,7 @@ CREATE TABLE time ( id BIGINT NOT NULL AUTO_INCREMENT, - time VARCHAR(255) NOT NULL, + time VARCHAR(255) NOT NULL UNIQUE, PRIMARY KEY (id) );