如何将 属性 从 .cfg (OSGI) 动态添加到 persistence.xml (Hibernate)

How can I dynamically add property from .cfg (OSGI) to persistence.xml (Hibernate)

以下情况:

在我的 test_property.cfg 文件中,我有 属性 行:

...
hibernate/persistence.schema=TEST_1
...

persistence.xml 我有设置行:

...
<property name="hibernate.default_schema" value="${hibernate/persistence.schema}" />
....

但是在构建项目之后,值 ${hibernate/persistence.schema} - 没有被替换


xml 我使用蓝图标签的文件 - 没问题,但我试图从测试 property.cfg

中找出如何使用 persistence.xml 的可替换值

Cfg 文件仅在 运行时 使用,而不在构建阶段使用。

-在构建阶段,您可以通过在包含 persistance.xml 的文件夹上启用资源搜索来随意解析 Maven 变量(here 是一些有用的文档)。

-在运行时,无法将 属性 从 cfg 文件绑定到 xml 其他文件。不要忘记包已经构建好,所以它是一个不可变的 jar。

我的解决方案:

-定义一个新 bean,它使用来自 cfg 的 属性。在这里,我们确信 cfg 在运行时的任何更改都会立即被检测到。

-在该 bean 中,读取 xml 文件并从已从 cfg.

读取的文件中覆盖想要的 属性