Java 休眠hbm2ddl.auto默认值

Java 休眠hbm2ddl.auto默认值,java,mysql,database,hibernate,Java,Mysql,Database,Hibernate,的默认值是什么 hibernate.hbm2ddl.auto 在hibernate cfg文件映射中 是否可以删除 <property name="hibernate.hbm2ddl.auto">update</property> 更新 此映射来自配置文件 如果我删除此属性,它是否会影响我的数据库 ???仅省略hibernate.hbm2ddl.auto默认为hibernate不执行任何操作 已经这么问了 在创建SessionFactory时自动验证架构DDL或将其

的默认值是什么

hibernate.hbm2ddl.auto
在hibernate cfg文件映射中

是否可以删除

<property name="hibernate.hbm2ddl.auto">update</property>
更新
此映射来自配置文件

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


???

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


已经这么问了

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

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

这才是真正的答案:在配置中省略设置时,不会进行验证、更新、创建和删除。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);
}

使用源代码找出内部发生的事情是不公平的…;-):)为了停止猜测,我猜downvoter是对这是hibernate文档中的逐字记录这一事实做出反应的。我可以看出这可能会引起负面反应,尽管这并不困扰我。我并没有阅读并回答问题(就像Rparre所做的):当你们不指定一个值时会发生什么?如@Jollymorphic sais,问题是:如果不指定值会发生什么?
Validate
hibernate.hbm2ddl.auto
@subrajyotimajumder的默认值,从@raphaëλ的回答来看,
Validate
似乎不是默认值-如果不指定值,则不会发生任何事情(甚至验证也不会发生)。