66

hbm2ddl をオフにする方法に関するリファレンスが見つかりませんでした。

4

6 に答える 6

87

hibernate.hbm2ddl.auto何もしない休止状態のデフォルトを省略するだけです。リファレンス ドキュメントから:

1.1.4. 休止状態の構成

このhbm2ddl.autoオプションは、データベース スキーマの自動生成をデータベースに直接オンにします。 これは、構成オプションを削除してオフにするか、SchemaExport Ant タスクを使用してファイルにリダイレクトすることもできます。

(文書化されていない)に設定hbm2ddl.autoすると、次のような警告が生成される場合があります。noneorg.hibernate.cfg.SettingsFactory - Unrecognized value for "hibernate.hbm2ddl.auto": none

于 2010-07-05T13:44:00.050 に答える
41

次の方法でオフにできます。

hibernate.hbm2ddl.auto=none

文書化されていませんが、貴重です!

于 2013-04-04T11:54:44.783 に答える
12

これを明確にするには、次のソースを調べる必要org.hibernate.cfg.SettingsFactoryがあります (使用しているバージョンによっては、別のものが表示される場合があります)。

String autoSchemaExport = properties.getProperty( AvailableSettings.HBM2DDL_AUTO );
if ( "validate".equals(autoSchemaExport) ) {
    settings.setAutoValidateSchema( true );
}
else if ( "update".equals(autoSchemaExport) ) {
    settings.setAutoUpdateSchema( true );
}
else if ( "create".equals(autoSchemaExport) ) {
    settings.setAutoCreateSchema( true );
}
else if ( "create-drop".equals( autoSchemaExport ) ) {
    settings.setAutoCreateSchema( true );
    settings.setAutoDropSchema( true );
}
else if ( !StringHelper.isEmpty( autoSchemaExport ) ) {
    LOG.warn( "Unrecognized value for \"hibernate.hbm2ddl.auto\": " + autoSchemaExport );
}

クラスでは、org.hibernate.cfg.Settingsこれらの変数は次のように初期化されます。

private boolean autoCreateSchema;
private boolean autoDropSchema;
private boolean autoUpdateSchema;
private boolean autoValidateSchema;

したがって、これらのデフォルトは false です。

設定を省略すると、提案されているように機能がhibernate.hbm2ddl.autoオフになりますが、後者の場合、ログに警告が表示されます。HBM2DDL_AUTOhibernate.hbm2ddl.auto = none

于 2014-10-15T12:26:43.813 に答える
5

hibernate.propertiesで

hibernate.hbm2ddl.auto=validate

もちろん、それを構成する場所は、休止状態を構成する方法によって異なります。プログラムで構成されている場合は、そこにプロパティを設定します。hibernate.cfg.xmlからのものである場合:

<property name="hibernate.hbm2ddl.auto">validate</property>
于 2010-07-05T13:29:08.137 に答える