Verwenden Sie die Postconstuct-Annotation irgendwo in einer Bean:
%Vor%Wahrscheinlich macht (desgin) Sinn, eine Konfigurations-Bean zu verwenden, aber es kann überhaupt irgendeine Bean sein.
Hibernate enthält eine Möglichkeit, einige Dateien mit SQL-Anweisungen hinzuzufügen, die beim Start ausgeführt werden.
Der Parameter ist hibernate.hbm2ddl.import_files
.
@Siehe Hibernate-Referenz: Kapitel 3.4. Optionale Konfigurationseigenschaften
Durch Kommas getrennte Namen der optionalen Dateien, die SQL DML enthalten Anweisungen, die während der Erstellung der SessionFactory ausgeführt werden. Das ist nützlich zum Testen oder Demonstrieren: durch Hinzufügen von INSERT-Anweisungen zum Beispiel Sie kann Ihre Datenbank mit einem minimalen Satz von Daten füllen, wenn dies der Fall ist bereitgestellt.
Die Dateireihenfolge ist wichtig, die Anweisungen einer gegebenen Datei werden vorher ausgeführt die Anweisungen der folgenden Dateien. Diese Aussagen sind nur Wird ausgeführt, wenn das Schema erstellt wird, dh wenn hibernate.hbm2ddl.auto gesetzt ist Erstellen oder Erstellen-Drop.
z.B. /humans.sql,/dogs.sql
Ich mag einige Hinweise, dass dies nur funktioniert, wenn der Ruhezustand im 'create' Modus gestartet wird. Aber ich bin mir nicht sicher.
Zwei Optionen,
Erstens: Lassen Sie Hibernate erstellen Sie Ihre ddl jedes Mal, wenn die Dienste gestartet wird (nur für lokale oder dev-Umgebung)
%Vor%Oder erstellen Sie im Frühjahr eine Bean mit init-faul false und fügen Sie dort die Logik hinzu, um die Datenbank zu erstellen, wenn Sie sie nicht haben oder injizieren Sie Ihr Skript oder tun Sie, was Sie wollen.
%Vor%Sie können einige Beans in einer Root-Kontext-Konfiguration erstellen - wie
%Vor%Daher wird beim Start der Methode "methodName" aufgerufen. Wir haben DB-Upgrades auf diese Weise implementiert.
Wenn Sie Ihre Eigenschaft hibernate.hbm2ddl.auto
auf create
oder create-drop
festgelegt haben, können Sie dies am einfachsten tun, indem Sie die Eigenschaft hibernate.hbm2ddl.import_files
mit dem SQL-Dateinamen mit SQL-Anweisungen zum Laden Ihrer ursprünglichen Daten in die Datenbank festlegen Schema, z Benutzer der ersten Anwendung.
Das Folgende ist eine Beispielmethode, die ich in meiner Klasse DatabaseConfig
habe. Er setzt die Eigenschaft hibernate.hbm2ddl.import_files
mit dem SQL-Dateinamen import_initial_data.sql , der SQL-Insert-Anweisungen enthält, um meine Ausgangsdaten in das Datenbankschema zu laden.
Dies ist mein AppUser.java
in model
Paket:
Abhängigkeit von Maven für lombok :
%Vor% Die Datei import_initial_data.sql , die ich in resources
directory:
Und das Ergebnis von * SELECT * FROM appuser; *:
Tags und Links hibernate spring initialization spring-mvc startup