Hibernate hbm2ddl.auto default value
本问题已经有最佳答案,请猛点这里访问。
什么是默认值
1 | hibernate.hbm2ddl.auto |
在hibernate cfg文件映射中
有可能删除
1 | <property name="hibernate.hbm2ddl.auto">update</property> |
这个来自配置文件的映射
如果我删除此属性是否会影响我的数据库
???
这就是答案:从配置中省略设置时,不进行验证,不进行更新,不进行创建,也不进行删除。 hibernate源代码是关于Hibernate的最佳文档:
1 2 3 4 5 6 7 8 9 | // 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); } |
省略hibernate.hbm2ddl.auto默认为Hibernate没有做任何事情。
已经在SO中被问到了。 链接
创建SessionFactory时,自动验证或将架构DDL导出到数据库。 使用create-drop,当SessionFactory显式关闭时,将删除数据库模式。
1 | validate | update | create | create-drop |
- 验证 - 现有架构
- update-仅在创建后更新您的架构
- 每次都创建 - 创建模式