Frage

Ich konnte keinen Hinweis finden, wie hbm2ddl auszuschalten.

War es hilfreich?

Lösung

Just Weglassen hibernate.hbm2ddl.auto standardmäßig Hibernate nichts zu tun. Von der Referenzdokumentation:

1.1.4. Hibernate Konfiguration

Die hbm2ddl.auto Option schaltet automatische Generierung von Datenbank Schemata direkt in die Datenbank. Dies kann auch durch Entfernen der Konfigurationsoption ausgeschaltet werden, oder mit Hilfe in eine Datei umgeleitet die Schema Ant-Task.

Einstellung hbm2ddl.auto zu none (undokumentiert) möglicherweise eine Warnung erzeugen, wie zum Beispiel: org.hibernate.cfg.SettingsFactory - Unrecognized value for "hibernate.hbm2ddl.auto": none

Andere Tipps

Sie können es ausschalten, indem Sie:

hibernate.hbm2ddl.auto=none

Es ist nicht dokumentiert, aber von unschätzbarem Wert!

Um dies eine klare, eine in die Quelle der org.hibernate.cfg.SettingsFactory aussehen sollte (Sie etwas anderes, abhängig von der Version sehen kann verwendet):

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 );
}

In der org.hibernate.cfg.Settings Klasse werden diese Variablen initialisiert, wie:

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

so dieser Standard auf false gesetzt.

Das Weglassen der hibernate.hbm2ddl.auto Einstellung sollte die HBM2DDL_AUTO Funktionalität abschalten wie hibernate.hbm2ddl.auto = none vorgeschlagen würde, aber auf letzterem Fall erhalten Sie eine Warnung im Protokoll.

in hibernate.properties

hibernate.hbm2ddl.auto=validate

Natürlich ist der Ort zu konfigurieren, dass auf dem Weg ab, die Sie Ihren Hibernate konfigurieren - wenn es programmatisch ist, legen Sie die Eigenschaft gibt. Wenn es von hibernate.cfg.xml ist:

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

Wenn Sie einen nicht unterstützten Wert eingeben wird es Ihnen sagen, welche unterstützt werden: o.h.b.i.SessionFactoryBuilderImpl : Unrecognized hbm2ddl_auto value : bla. Supported values include 'create', 'create-drop', 'update', 'none' and 'validate'. Ignoring

Und der Wert none wird der Standard wird offiziell unterstützt und dokumentiert: https://docs.jboss.org/ Hibernate / ORM / Strom / -Nutzerhandbuch / html_single / Hibernate_User_Guide.html # Konfigurationen-hbmddl

Diese Eigenschaft ist nicht erforderlich. Nur löschen Sie den Eintrag hibernate.hbm2ddl.auto vollständig aus der XML-Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top