2009-04-12 3 views
2

Ich habe zwei Persistenzeinheiten in meiner JPA/Hibernate-Konfiguration konfiguriert. Jetzt muss ich verschiedene import.sql für jede Persistenzeinheit ausführen. Wie kann ich angeben, welche import.sql für jede Persistenzeinheit ausgeführt werden soll? Laut Hibernate zur Dokumentation sollte ich import.sql in classpath platzieren. Wenn ich das tue, wird import.sql auf jeder Persistenzeinheit ausgeführt. Ich muss irgendwie verschiedene import.sql für jede Persistenzeinheit spezifizieren.Wie wird difference import.sql in Hibernate/JPA für jede Persistenzeinheit ausgeführt?

Antwort

5

Sie könnten wahrscheinlich etwas manuell mit der org.hibernate.tool.hbm2ddl.SchemaExport-Klasse tun, wenn Ihre Anwendung gestartet wird.

SchemaExport schemaExport1 = new SchemaExport(cfg1); // there are various c-tors available 
schemaExport1.setInputFile("/import-1.sql"); 
schemaExport1.create(false, true); 

SchemaExport schemaExport2 = new SchemaExport(cfg2); 
schemaExport2.setInputFile("/import-2.sql"); 
schemaExport2.create(false, true); 
+0

Die Methode heißt SchemaExport.setImportFile (String) – xmedeko

7

FWIW, ist dies möglich, mit Hibernate 3.6.0.Beta1 (siehe HHH-5337), können Sie jetzt erklären, welche Datei (en) zu importieren, um die hibernate.hbm2ddl.import_files Eigenschaft mit:

hibernate.hbm2ddl.import_files /mydbload.sql,/mydbload2.sql 

So könnte man Verwenden Sie für jede Persistenzeinheit unterschiedliche Werte.

0

In allen meinen Projekten verwende ich nur eine import.sql und neben dieser stelle ich verschiedene andere * .sql (zB: H2_import.sql, sqlServer_import.sql) und abhängig von der zu verwendenden Persistenzeinheit kopiere ich den Inhalt von * .sql und hinter es in import.sql

Verwandte Themen