【问题标题】:How can I dynamically add property from .cfg (OSGI) to persistence.xml (Hibernate)如何将 .cfg (OSGI) 中的属性动态添加到 persistence.xml (Hibernate)
【发布时间】:2017-12-03 02:40:43
【问题描述】:

以下情况:

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

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

persistence.xml 我有设置行:

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

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


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

【问题讨论】:

    标签: hibernate osgi jbossfuse


    【解决方案1】:

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

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

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

    我的解决方案

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

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

    【讨论】:

    • -感谢您的回复,是的,这是解决问题的正确方法,我还想添加一些注释。 - 这将需要创建自己的工厂,您可以在其中选择要使用的 persistence.xml .. 我没有找到任何决定,只自定义工厂
    猜你喜欢
    • 2011-01-15
    • 2020-11-05
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    相关资源
    最近更新 更多