Spring Boot에 hibernate, jpa 를 설정하다보면 spring.jpa.hibernate.ddl-auto라는 옵션이 있는데,
create, create-drop, update, validate라는 4가지 옵션을 지원한다.
ddl-auto 기능에 대해 간단히 설명하자면,
java언어에서 Object를 선언해두고, @Entity만 붙이면,
WebApplication이 올라갈 때 (정확히는 hibernate의 sesseionFactory가 올라갈 때)DataSource에 접근을 해서
DBMS의 스키마를 자동으로 Alter를 하거나 지우고 다시 만들거나 검증하거나 하는 역할을 해준다.
WebApplication이 올라갈 때 DBMS 스키마에 무슨 행위를 할 것인가에 대해 정하는 정책이라고 보면 쉽다.
4가지 옵션에 대해 알아보자.
create : SessionFactory가 올라갈 때 테이블을 지우고 새로 만듬. (sql문을 별도로 만들어서 데이터를 넣는 용도로도 사용가능하다.)
create-drop : create와 동일하지만, SessionFactory가 내려가면 해당 테이블을 drop시킨다.
update : SessionFactory가 올라갈 때 Object를 검사하여 테이블을 alter 시킨다. 데이터는 유지됨.
validate : update처럼 Object를 검사하지만, 스키마는 아무것도 건드리지 않고, Object와 스키마의 정보가 다르다면 에러를 발생시킨다.
create, create-drop은 개발 환경에서 사용하면 편리하지만, live에서 사용은 조금 위험할 수 있을 것 같다.
live환경에서는 update나 validate를 잘 사용하면 좋을 것 같다.
'개발 > JPA, Hibernate' 카테고리의 다른 글
[Hibernate] Hibernate Validator (0) | 2016.06.11 |
---|---|
[Hibernate] Custom Validator (0) | 2016.06.11 |
[Hibernate] Entity 선언 시 주의점 (0) | 2016.06.11 |
[Spring Data Jpa] limit와 ordering (1) | 2016.06.11 |
[Spring Data Jpa] custom query 적용 (0) | 2016.06.11 |