JPA에서는 애플리케이션 로딩 시점에 DB 테이블을 생성하는 기능을 지원한다.
테이블을 먼저 만들고, 객체를 만드는 형태로 개발했었는데, JPA를 사용하면 객체 매핑을 다 해놓고 애플리케이션을 로딩할 때 테이블이 알아서 만들어진다
테이블 중심 -> 객체 중심
데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL을 생성한다.
DDL을 애플리케이션 실행 시점에 자동 생성하는 기능이다.
hibernate.hbm2ddl.auto
※ 속성
create
- 기존테이블 삭제 후 다시 생성 (DROP + CREATE)
create-drop
- create와 같으나 종료시점에 테이블 DROP
update
- 변경분만 반영(운영DB에는 사용하면 안됨)
- 삭제는 X
validate
- 엔티티와 테이블이 정상 매핑되었는지만 확인
none
- 사용하지 않음
운영에서 사용 X (create, create-drop, update), 개발단계에서만 사용 O
- 개발 초기 단계 : create or update
- 테스트 서버 : update or validate
- 스테이징, 운영 서버 : validate or none (하지만 가급적 쓰지 말자)