Hibernate hbm2ddl.auto默认值

时间:2012-05-17 09:44:36

标签: java mysql database hibernate

的默认值是多少
hibernate.hbm2ddl.auto

在hibernate cfg文件映射

是否可以删除

<property name="hibernate.hbm2ddl.auto">update</property>

来自配置文件的这种映射

如果我删除此属性是否影响我的数据库

???

3 个答案:

答案 0 :(得分:40)

这就是答案:没有验证,没有更新,没有创建和没有删除发生从配置中省略设置时。 hibernate源代码是关于Hibernate的最佳文档:

// from org.hibernate.cfg.SettingsFactory line 332 (hibernate-core-3.6.7)      
String autoSchemaExport = properties.getProperty(Environment.HBM2DDL_AUTO);
if ( "validate".equals(autoSchemaExport) ) settings.setAutoValidateSchema(true);
if ( "update".equals(autoSchemaExport) ) settings.setAutoUpdateSchema(true);
if ( "create".equals(autoSchemaExport) ) settings.setAutoCreateSchema(true);
if ( "create-drop".equals(autoSchemaExport) ) {
  settings.setAutoCreateSchema(true);
  settings.setAutoDropSchema(true);
}

答案 1 :(得分:21)

省略hibernate.hbm2ddl.auto默认为Hibernate没有做任何事情。

已经在SO中提出过。 link

答案 2 :(得分:19)

创建SessionFactory时,自动验证或将架构DDL导出到数据库。使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。

validate | update | create | create-drop
  • 验证 - 现有架构
  • 更新 - 仅在创建后更新架构
  • 每次创建模式