在设置文件中,有下面的设置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>
hibernate.hbm2ddl.auto参数的浸染主要用于:自动建设|更新|验证数据库表布局。假如不是此方面的需求发起set value="none"。
create:
每次加载hibernate时城市删除上一次的生成的表,然后按照你的model类再从头来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时按照model类生成表,可是sessionFactory一封锁,表就自动删除。
update:
最常用的属性,第一次加载hibernate时按照model类会自动成立起表的布局(前提是先成立好数据库),今后加载hibernate时按照 model类自动更新表布局,纵然表布局改变了但表中的行仍然存在不会删除以前的行。要留意的是当陈设随处事器后,表布局是不会被顿时成立起来的,是要等应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证建设数据库表布局,只会和数据库中的表举办较量,不会建设新表,可是会插入新值。