I have configured two persistence units in my JPA/Hibernate configuration. Now i need to execute different import.sql for each persistence unit. How can I specify which import.sql should be executed for each persistence unit? According Hibernate to documentation, I should place import.sql in classpath. If I do that, import.sql is executed on each persistence unit. I need somehow to specify different import.sql for each persistence unit.
Asked
Active
Viewed 8,080 times
3 Answers
7
FWIW, this is possible with Hibernate 3.6.0.Beta1 (see HHH-5337), you can now declare what file(s) to import using the hibernate.hbm2ddl.import_files
property:
hibernate.hbm2ddl.import_files /mydbload.sql,/mydbload2.sql
So you could use different values for each persistence unit.

Pascal Thivent
- 562,542
- 136
- 1,062
- 1,124
5
You could probably do something manual using the org.hibernate.tool.hbm2ddl.SchemaExport class when your application starts up.
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);

Matt Sidesinger
- 2,124
- 1
- 22
- 18
-
The method is called SchemaExport.setImportFile(String) – xmedeko Jan 13 '11 at 13:41
0
In all my projects, i use only one import.sql and next to it i create different other *.sql(eg : H2_import.sql,sqlServer_import.sql) and depending on wich persistence unit to use i copy the content of *.sql and past it into import.sql

abdellah7000
- 11
- 1
- 2