2017-06-29 22 views
0

以下情况:在我test_property.cfg文件我怎么能动态地从.CFG(OSGI)到persistence.xml中(休眠)添加属性

我有红线:

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

的persistence.xml我有设置行:

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

但建设项目的价值后, $ {休眠/ persistence.schema} - 没有更换,我用的蓝图标签


XML文件 - 是好的,但我试图找出如何使用替换值的persistence.xml从测试property.cfg

回答

1

CFG文件仅用于在运行,而不是在构建阶段。

在构建阶段,您可以根据需要解决Maven变量,方法是在包含persistance.xml的文件夹中启用ressources(here是一些有用的文档)。

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

我的解决办法

-define一个新的bean消耗从CFG财产。这里我们确信,运行时cfg中的任何更改都会立即被检测到。

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

+0

- 感谢您的回复,是的,这是解决问题的正确方法,我也想添加一些注释。 - 这将需要创建自己的工厂,你可以选择使用哪个persistence.xml ..我没有找到任何决定,只定制工厂 –