hibernate.ddl-auto
엔티티(Entity) 객체를 참고하여 애플리케이션 실행 시점에 하이버네이트가 자동으로 DDL을 만들어주는 옵션이다.
application.yml
spring.jpa.hibernate.ddl-auto: ? // create, create-drop, update, validate, none
ddl-auto 옵션
? 부분에 값을 설정하면 다음과 같다.
- create: 기존 테이블 삭제 후 다시 생성한다.
- create-drop: create와 같으나 종료 시점에 테이블 DROP
- update: 기존 DB에 변경사항만 반영된다. (운영 DB에 사용하면 안된다.)
- validate: 엔티티와 테이블이 정상 매핑되었는지만 확인한다.
- none: auto 기능을 사용하지 않는다.
운영 서버에서는 create, create-drop, update를 절대 사용하면 안된다.
개발 초기 단계에는 create, update가 사용된다.
테스트 서버는 update, validate가 사용된다.
운영 서버는 validate로 정상적으로 매핑되었는지 확인하거나, none을 사용한다.
데이터베이스 스키마 자동 생성
- DDL을 애플리케이션 실행 시점에 자동 생성한다.
- JPA는 테이블 중심 → 객체 중심으로 개발자에게 객체지향적으로 개발할 수 있도록 도와준다.
- JPA는 데이터베이스 방언에 따라 적절한 DDL을 생성한다.
- 이렇게 생성된 DDL은 개발 장비에서만 사용된다.
- 생성된 DDL은 운영 서버에서 사용은 하지 않으나, 적절히 다듬은 후 사용한다.
Reference
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런
www.inflearn.com
'Spring > JPA' 카테고리의 다른 글
[JPA] 엔티티 매핑 - 기본 키(Primary Key) 매핑 (0) | 2022.12.27 |
---|---|
[JPA] 엔티티 매핑 - 필드와 컬럼 매핑 (0) | 2022.12.27 |
[JPA] 엔티티 매핑 - 객체(Entity)와 테이블(Table) 매핑 (0) | 2022.12.27 |
[JPA] 플러시(flush) (0) | 2022.12.27 |
[JPA] 엔티티의 생명주기 (0) | 2022.12.27 |