如何在Hibernate/JPA中为每个持久单元执行differnet import.sql?

发布于 2024-07-17 12:37:39 字数 212 浏览 6 评论 0原文

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

澜川若宁 2024-07-24 12:37:39

FWIW,这可以在 Hibernate 3.6.0.Beta1 中实现(请参阅 HHH-5337),您现在可以使用 hibernate.hbm2ddl.import_files 属性声明要导入的文件:

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

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

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.

潜移默化 2024-07-24 12:37:39

当应用程序启动时,您可能可以使用 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);

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);
森林很绿却致人迷途 2024-07-24 12:37:39

在我的所有项目中,我只使用一个 import.sql,在它旁边我创建不同的其他 *.sql(例如:H2_import.sql、sqlServer_import.sql),并根据要使用的持久性单元复制 *.sql 的内容并将其粘贴到 import.sql 中

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文