Hibernate hbm2ddl.auto 默认值[重复]

问题描述 投票:0回答:3

默认值是多少

hibernate.hbm2ddl.auto

在hibernate cfg文件映射中? 可以去掉吗

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

来自配置文件? 如果我删除这个属性会影响我的数据库吗???

java mysql database hibernate
3个回答
51
投票

这确实是答案:当从配置中省略设置时,会发生no验证、no更新、no创建和no删除。 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);
}

28
投票

仅省略 hibernate.hbm2ddl.auto 默认 Hibernate 不执行任何操作。

已经在SO中询问过。 链接


16
投票

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

validate | update | create | create-drop
  • 验证-现有架构
  • 更新 - 仅在创建后更新架构
  • 创建-每次都创建模式
© www.soinside.com 2019 - 2024. All rights reserved.