Hibernate中hibernate.hbm2ddl.auto的详细说明

前段时间做了一个Guice + JPA + Hibernate Entity Manage 的项目,开发过程中发现数据库表总是莫名其妙的被修改,刚开始到处问谁修改了.到后来才发现是hibernate.hbm2ddl.auto这个配置在搞怪.这参数不怎么用,没仔细研究过,不知道他具体的用处.从网上着了一段这个配置的解释:
<properties>
           <property name="hibernate.show_sql" value="true" />      
           <property name="hibernate.hbm2ddl.auto" value="create" />
</properties>


英文解释如下:
hibernate.hbm2ddl.auto Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.  eg. validate | update | create | create-drop

其实这个参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none".
其它几个参数的意思,我解释一下:
validate          加载hibernate时,验证创建数据库表结构
create            每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop       加载hibernate时创建,退出是删除表结构
update            加载hibernate自动更新数据库结构


请慎重使用此参数,不熟悉的最好设为none。


你可能感兴趣的:(数据结构,xml,Hibernate,jpa)