<< 2008년 6월 5일 (목) | | 2008년 6월 7일 (토) >>

Hibernate hbm2ddl 툴

Hibernate hbm2ddl은 Hibernate 매핑 설정 정보를 가지고 데이터 베이스 스키마의 create, update, validate 기능을 허용하는 기능입니다. 즉, DB의 테이블을 자동으로 생성할 수도 있고 생성 및 DROP, 필드 정보 변경만 가할 수 있는 기능입니다.

1. 사용하기 위한 설정 정보
<bean id="hibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="jdbc.fetch_size">50</prop>
<prop key="jdbc.batch_size">25</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.query.substitutions">true 1,false 0</prop>
</property>
</bean>

2. hibernate.hbm2ddl.auto 의미
  • create : 무조건 테이블를 생성하고 classpath에 import.sql이 있을 경우 import.sql을 구동해 준다.
  • create-drop : create기능과 같고 추가적으로 테이블 drop기능까지 부여된다.
  • update : 테이블이 없을 경우 테이블 생성하고 있을 경우 테이블의 칼럼 구조 변경되면 변경까지 가능
  • validate : 테이블 스키마의 Validation기능만 제공

모드

     import.sql 테이블 구조 변경

비고

update

불가

가능

 

create

가능

가능


create-drop

가능

가능

SessionFactory가 닫힐때 DROP

validate

불가

불가

 


초기 개발시에는 create-drop, create, update를 많이 사용하실겁니다. 운영 모드에서는 validate를 사용하는 경우가 많죠.