orm - 将属性注入(inject) JPA orm.xml?

标签 orm jpa dynamic

我们正在拆分基线(用于 1.0 版和 2.0 版并行开发)。我们正在研究其他替代方案,而不是维护两个独立的数据库(和硬件)。我们希望能够使用同一个数据库实例,并在两个不同的模式中拥有表/数据的副本:

1.0:SCHEMA_1
2.0:SCHEMA_2

JPA orm.xml 文件具有指定架构的属性:

<schema>SCHEMA_1</schema>

我的问题是是否可以注入(inject)属性而不是硬编码模式名称(以及如何注入(inject))。

例如,如果我们有一个包含以下内容的 .properties 文件:

schema.name=SCHEMA_1

然后我们可以像这样在 orm.xml 文件中使用 schema.name 吗:

<SCHEMA>schema.name</SCHEMA>

感谢您的帮助!也欢迎其他使模式动态化的替代方法。

最佳答案

JPA 仅在 orm.xml 中定义了它。

在 EclipseLink 中,您可以使用 SessionCustomizer 在代码中的 EclipseLink session 中设置它,

session.getLogin().setTableQualifier("SCHEMA_1");

关于orm - 将属性注入(inject) JPA orm.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890612/

相关文章:

php - 什么是 ORM? Eloquent ORM?

php - Class::DBI 类 php 库?

c# - 如何动态地垂直增长表单并将文本框向下移动适当的量?

java - 是否可以在 Java 中在运行时创建变量?

PHP 目录的经验法则?

orm - 为什么 Doctrine 2 没有基本的验证方法来验证所有值是否适合实体属性?

java - Spring Hibernate JPA - 无 JTA TransactionSynchronizationRegistry

java - Spring JPA -> 将 ResultSet 映射到不存在的实体

rest - 错误: Getters of lazy classes cannot be final Kotlin Spring Boot

javascript - Adonis Lucid ORM 不返回数据