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

时间:2017-06-29 11:52:20

标签: hibernate osgi jbossfuse

以下案例:

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

...
hibernate/persistence.schema=TEST_1
...
persistence.xml 中的

我有设置行:

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

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

我使用blueprint标签的xml文件 - 没问题,但我试图找出如何从test property.cfg中使用persistence.xml的可替换值

1 个答案:

答案 0 :(得分:1)

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

- 在构建阶段,您可以通过在包含persistance.xml的文件夹上启用ressource来解决maven变量(here是一些有用的文档)。

- 在运行时,无法将cfg文件中的属性绑定到xml其他文件。不要忘记捆绑已经建成,因此它是一个不可变的罐子。

我的解决方案

- 定义一个消耗cfg属性的新bean。在这里,我们确信将立即检测到cfg在运行时的任何更改。

- 在那个bean中,读取xml文件并覆盖已从cfg中读取的属性。