我们正在拆分基线(用于 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/