Я настроил две единицы сохранения в своей конфигурации JPA/Hibernate. Теперь мне нужно выполнить другой import.sql для каждой единицы сохранения. Как я могу указать, какой файл import.sql должен выполняться для каждой единицы сохраняемости? Согласно документации Hibernate, я должен поместить import.sql в путь к классам. Если я это сделаю, import.sql будет выполняться на каждой единице персистентности. Мне нужно как-то указать разные import.sql для каждой единицы сохранения.
Как выполнить differentnet import.sql в Hibernate/JPA для каждой единицы сохранения?
Ответы (3)
Вероятно, вы могли бы сделать что-то вручную, используя класс org.hibernate.tool.hbm2ddl.SchemaExport при запуске вашего приложения.
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);
person
Matt Sidesinger
schedule
13.04.2009
Метод называется SchemaExport.setImportFile(String)
- person xmedeko; 13.01.2011
FWIW, это возможно с Hibernate 3.6.0.Beta1 (см. HHH-5337), теперь вы можете объявить, какие файлы импортировать, используя свойство hibernate.hbm2ddl.import_files
:
hibernate.hbm2ddl.import_files /mydbload.sql,/mydbload2.sql
Таким образом, вы можете использовать разные значения для каждой единицы персистентности.
person
Pascal Thivent
schedule
28.10.2010
Во всех моих проектах я использую только один import.sql, а рядом с ним я создаю разные другие *.sql (например: H2_import.sql, sqlServer_import.sql) и в зависимости от того, какую единицу персистентности использовать, я копирую содержимое *.sql и вставьте его в import.sql
person
abdellah7000
schedule
28.02.2013