web-dev-qa-db-ja.com

Hibernate hbm2ddl.autoのデフォルト値

のデフォルト値は何ですか

hibernate.hbm2ddl.auto

hibernate cfgファイルのマッピング

削除することは可能ですか

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

構成ファイルからのこのマッピング

このプロパティを削除すると、DBに影響するかどうか

???

28
Anand K Nair

SessionFactoryの作成時に、スキーマDDLを自動的に検証またはデータベースにエクスポートします。 create-dropでは、SessionFactoryが明示的に閉じられると、データベーススキーマが削除されます。

validate | update | create | create-drop
  • 検証-既存のスキーマ
  • 更新-作成したスキーマのみを更新します
  • create-毎回スキーマを作成します
19

それが本当に答えです: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);
}
40
raphaëλ

Hibernate.hbm2ddl.autoを省略しただけで、何もしないHibernateにデフォルト設定されます。

SO。 link

21
Abhilash