728x90
이번시간에는 Error executing DDL "alter table user drop foreign key
에러의 원인과 해결방법, 그리고 Spring JPA의 초기화 전략에대해 알아보도록 하겠습니다.
1. Spring JPA / Hibernate의 초기화 전략
generate-ddl 옵션 (spring.jpa.hibernate.ddl-auto)
Spring JPA를 사용하시는 분들이라면 spring.jpa.hibernate.ddl-auto
옵션을 자주 사용하셨을 것입니다. 다들 아시겠지만, 굳이 한번더 설명드리자면, JAVA의 Entity설정을 참고하여 Spring Application 실행시점에 Hibernate에서 자동으로 DDL
을 생성하여, 필요한 Database의 Table설정들을 자동으로 수행해주는 기능입니다.
설정 가능한 값은 true , false
둘중 하나 입니다.
spring boot에서 설정하는 경우, yml
형식의 파일을 기준으로 위와 같이 설정을하면 됩니다.
DDL AUTO 옵션 (spring.jpa.hibernate.ddl-auto)
spring.jpa.hibernate.ddl-auto
옵션의 경우에는 Jpa의 Database 초기화 전략을 의미합니다. 설정 가능한 값은 아래와 같이 5가지가 존재합니다.
- none : 아무것도 실행하지 않음.
- create-drop : SessionFactory 시작시점에 drop후 create를 실행하며, SessionFactory 종료시 drop을 실행함.
- update : 변경된 스키마를 적용.
- create : SessionFactory 시작시점에 drop을 실행하고 create를 실행.
- validate : 변경된 스키마가 존재하면 변경사항을 출력하고 app을 종료.
2. Error executing DDL "alter table user drop foreign key
create_drop
설정은 실행시 table을 모두 drop
합니다. 따라서 alter할 테이블을 찾지 못하여 나타나는 에러입니다. 초기화 옵션을 update
로 변경하면 에러가 해결됩니다.
'FrameWork > Spring JPA' 카테고리의 다른 글
Spring JPA - JPA를 이용해 Commerce App 만들기 - 2 (설계 : 요구사항 분석, 도메인모델, 엔티티 설계) (0) | 2020.05.01 |
---|---|
Spring JPA - JPA를 이용해 Commerce App 만들기 - 1 (프로젝트 설정) (0) | 2020.04.04 |
JPA - Entity의 가독성을 높이자 - 2 (Embedded Id 사용법) (0) | 2019.08.05 |
JPA - Entity의 가독성을 높이자(@Embedded, @Embeddable, @AttributeOverride 사용법) (0) | 2019.07.25 |
JPA - Enum을 이용해 Column 저장하기 (1) | 2019.06.30 |