JPA 는 데이터베이스 스키마를 자동으로 생성하는 기능을 지원한다. 매핑 정보와 데이터베이스 방언을 사용해서 데이터베이스 스키마를 생성한다.
이러한 기술은 개발시에 테이블 중심 에서 객체 중심으로 옮겨 준다.
persistence.xml 에 추가하면 애플리케이션 실행 시점에 데이터 베이스 테이블을 자동으로 생성한다.
<property name ="hibernate.hbm2ddl.auto" value="create" />
hibernate.show_sql 속성을 true 설정하면 콘솔에 실행되는 테이블 생성 DDL을 출력할 수 있다.
<property name = "hiberate.show_sql" value="true" />
application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dev_db?serverTimezone=UTC&useSSL=false
spring.datasource.username=user01
spring.datasource.password=1234
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
spring.jpa.show-sql=true
spring.jpa.database=mysql
logging.level.org.hibernate=info
server.port=8090
실행된 결과를 보면 기본 테이블을 삭제하고 다시 생성한다
자동 생성되는 DDL은 지정한 데이터베이스 방언에 따라 달라진다.
스키마 자동 생성 기능이 만든 DDL은 운영 환경에서 사용할 만큼 완벽하지는 않으므로 개발 환경에서 사용하거나 매핑을 어떻게 해야 하는지 참고하는 정도로만 사용하는 것이 좋다.