Server/Data
Hibernate 사용시 주의해야하는 ddl 옵션
진스팍
2019. 1. 23. 18:33
Hibernate 를 이용한 토이프로젝트를 수행하면서... 큰 삽질을 해서 정리해보는 포스팅 ㅜㅜ
hbm2ddl.auto 설정은 hibernate에 포함된 매핑 설정으로 Database 스키마 생성 스크립트를 만드는데 사용된다.
시작시마다 Mapping 설정대로 Schema를 세팅할 수 있는데 설정 값에 따라 다음과 같이 동작한다.
- Create : Session Factory 가 실행될 때 스키마를 지우고 다시 생성. 생성 후에는 classpath에 import.sql 파일이 있는지 찾아 등록된 쿼리문을 실행한다.
- Create-drop : 기본적으로 create와 동일하지만 session 팩토리가 내려갈 때 db 스키마를 삭제한다. (이걸로 설정했다가 디비 날려먹었었다.)
- Update ; 도메인 객체구성과 스키마를 비교해서 도메인 객체에 맞춰서 db 스키마를 변경한다. 데이터나 스키마를 지우지 않는다.
- Validate : 도메인 객체구성과 db스키마가 같은지만 확인할 뿐 변경하지 않는다. 다를 시 session Factory가 시작시 확인하고 예외를 발생시킨다.
다음은 Hibernate 사용시 알아두어야 하는 JPA 프로퍼티들이다.