如何在Hibernate/JPA中为每个持久化单元执行不同的import.sql?[英] How to execute differnet import.sql in Hibernate/JPA for each persistence unit?

问题描述

我在JPA/Hibernate配置中配置了两个持久性单元.现在,我需要执行每个持久性单元的不同导入.如何指定每个持久性单元应执行哪个import.sql?根据文档的Hibernate,我应该将import.sql放在classPath中.如果我这样做,则在每个持久性单元上执行import.sql.我需要以某种方式为每个持久性单元指定不同的导入.

推荐答案

您可能可以使用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);

其他推荐答案

fwiw,这是有可能使用Hibernate 3.6.0.beta1(见<​​a a href =" http://opensource.atlassian.com/projects/projects/hibernate/hibernate/browse/browse/browse/hhhh-5337" > HHH-5337 ),您现在可以声明使用hibernate.hbm2ddl.import_files属性导入的文件:

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

因此,您可以为每个持久性单元使用不同的值.

其他推荐答案

在我的所有项目中,我仅使用一个import.sql,旁边是我创建其他 *.sql(例如:h2_import.sql,sqlserver_import.sql),并取决于持续的单位*.sql的内容并将其经过import.sql

本文地址:https://www.itbaoku.cn/post/854531.html