Как выполнить difnet import.sql в Hibernate / JPA для каждой персистентной единицы? - PullRequest
2 голосов
/ 12 апреля 2009

В моей конфигурации JPA / Hibernate я настроил два постоянных модуля. Теперь мне нужно выполнить разные import.sql для каждого модуля персистентности. Как я могу указать, какой import.sql должен выполняться для каждого модуля персистентности? Согласно Hibernate документации, я должен поместить import.sql в classpath. Если я это сделаю, import.sql выполняется на каждом постоянном устройстве. Мне нужно как-то указать разные import.sql для каждой персистентной единицы.

Ответы [ 3 ]

7 голосов
/ 29 октября 2010

FWIW, это возможно с Hibernate 3.6.0.Beta1 (см. HHH-5337 ), теперь вы можете объявить, какие файлы импортировать, используя свойство hibernate.hbm2ddl.import_files:

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

Таким образом, вы можете использовать разные значения для каждой единицы персистентности.

5 голосов
/ 13 апреля 2009

Вы могли бы, вероятно, сделать что-то ручное, используя класс 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);
0 голосов
/ 28 февраля 2013

Во всех моих проектах я использую только один import.sql, а рядом с ним я создаю разные другие * .sql (например: H2_import.sql, sqlServer_import.sql) и, в зависимости от того, какую единицу сохранения использовать, я копирую содержимое * .sql и вставьте его в import.sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...