hbm2ddl をオフにする方法に関するリファレンスが見つかりませんでした。
6 に答える
hibernate.hbm2ddl.auto
何もしない休止状態のデフォルトを省略するだけです。リファレンス ドキュメントから:
1.1.4. 休止状態の構成
この
hbm2ddl.auto
オプションは、データベース スキーマの自動生成をデータベースに直接オンにします。 これは、構成オプションを削除してオフにするか、SchemaExport Ant タスクを使用してファイルにリダイレクトすることもできます。
(文書化されていない)に設定hbm2ddl.auto
すると、次のような警告が生成される場合があります。none
org.hibernate.cfg.SettingsFactory - Unrecognized value for "hibernate.hbm2ddl.auto": none
次の方法でオフにできます。
hibernate.hbm2ddl.auto=none
文書化されていませんが、貴重です!
これを明確にするには、次のソースを調べる必要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_AUTO
hibernate.hbm2ddl.auto = none
hibernate.propertiesで
hibernate.hbm2ddl.auto=validate
もちろん、それを構成する場所は、休止状態を構成する方法によって異なります。プログラムで構成されている場合は、そこにプロパティを設定します。hibernate.cfg.xmlからのものである場合:
<property name="hibernate.hbm2ddl.auto">validate</property>