지나공 : 지식을 나누는 공간

JPA 3 : 데이터베이스 스키마 자동생성 기능 본문

Tech/JPA

JPA 3 : 데이터베이스 스키마 자동생성 기능

해리리_ 2020. 9. 21. 00:05

JPA의 기능에는 데이터베이스 스키마 자동생성 기능이 있다.

 

이는 DDL을 어플리케이션 실행 시점에 자동으로 생성해주는 기능이다.

 

테이블 중심에서 객체 중심으로 코딩이 가능하게 하는 기능이고, 데이터베이스 dialect에 따라 적절하게 DDL을 생성한다. 예를 들어 MySql이냐 Oracle이냐에 따라 varchar인지 varchar2인지가 달라진다. dialect에 따라 맞게 DDL을 생성한다. 그리고 이렇게 생성된 DDL은 개발 장비에서만 사용하고, 운영 서버에서는 사용하지 않거나 적절히 다듬어 쓴다.

 

사용법은 resources - META-INF - persistence.xml에서 hibernate.hbm2ddl.auto의 옵션을 설정하면 된다.

 

- create : 기존 테이블을 삭제한 뒤 다시 생성함(drop과 create의 기능을 함)

- create-drop : create과 같이 drop한 뒤에 create을 하지만 어플리케이션 종료 시점에 테이블을 드롭함

- update : 변경한 내용만 update쿼리를 통해 반영함, 추가하고 싶은데 drop하고 create하지 않고 alter를 하고 싶을 때 사용, 하지만 지우는 변경은 적용되지 않고 컬럼을 추가하는 수정만 적용이 가능함

- validate : 엔티티와 테이블이 정상매칭 되었는지 확인할 때 사용, 없는 컬럼에 대해 조회하려 하면 에러 발생함

- none : 주석처리하는 것과 동일한 기능으로 DDL 자동생성 기능을 사용하고 싶지 않을 때 씀

 

 

728x90
Comments