33

什么是默认值

hibernate.hbm2ddl.auto

在hibernate cfg文件映射中

是否可以删除

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

这个来自配置文件的映射

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

???

4

3 回答 3

48

这就是答案:当您从配置中省略设置时,不会发生验证更新、创建删除。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);
}
于 2012-05-17T11:38:03.770 回答
28

只是省略 hibernate.hbm2ddl.auto 默认为 Hibernate 不做任何事情。

已经问过 SO 。关联

于 2012-05-17T09:51:39.167 回答
16

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

validate | update | create | create-drop
  • 验证现有模式
  • 更新 - 仅在创建后更新您的架构
  • create - 每次都创建模式
于 2012-05-17T10:00:19.303 回答