33

デフォルト値は何ですか

hibernate.hbm2ddl.auto

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

取り除くことは可能ですか

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

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

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

???

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 に答える