JPA가 매핑 정보만 보면 어떤 쿼리를 만들어야할지 어떤 테이블인지 다 알 수 있습니다.
그래서 JPA는 애플리케이션 로딩 시점에 DB 테이블을 생성하는 기능도 지원해줍니다.
물론 운영에서 쓰면 안됩니다. 그러나 개발단계나 로컬에서 개발할 때 도움이 됩니다.
데이터베이스 스키마 자동 생성
- DDL을 애플리케이션 실행 시점에 자동 생성
- 로딩 시점에 create 문으로 DB를 생성하고 시작할 수 있습니다.
- 테이블중심 → 객체중심
- 개발할 때 테이블을 먼저 만들고 객체로 돌아와서 개발을 하는데 JPA는 그럴 필요가 없습니다.
- 그냥 객체 매핑을 다 해놓으면 애플리케이션 뜰 때 테이블을 다 만들어줍니다.
- 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성
- 예를 들어, 가변 문자 같은 경우 오라클은 VARCHAR2, MySQL은 VARCAHR를 사용하는데 이런 DDL이 생성될 때 방언에 따라서 적절하게 생성을 해줍니다.
- 이렇게 생성된 DDL은 개발 장비에서만 사용
- 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용
- 생성된 DDL은 불안할 수 있으니 필요한 경우엔 적절히 다듬은 후 사용해야합니다.
코드로 확인하기 1
아래 코드를 persistence.xml에 추가하면 어떤 일이 벌어지는지 확인해봅시다.
<property name="hibernate.hbm2ddl.auto" value="create" />
일단 실행을 해봅시다.
