【问题标题】:Externalize dynamic properties in persistence.xml在 persistence.xml 中外部化动态属性
【发布时间】:2013-12-26 13:34:31
【问题描述】:

我们在persistence.xml 文件中使用以下属性。

<properties>
    <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" />
    <property name="javax.persistence.jdbc.dialect" value="org.hibernate.dialect.OracleDialect" />
    <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@XYZDB01:78111:TATAD1" />
    <property name="javax.persistence.jdbc.user" value="admin" />
    <property name="javax.persistence.jdbc.password" value="admin@123" />
    <property name="javax.persistence.jdbc.Schema" value="CSMVC" />
</properties>

但我想从 persistence.xml 外部化动态属性,如下所示。

<properties>
    <property name="javax.persistence.jdbc.driver" value="${db.driver}" />
    <property name="javax.persistence.jdbc.dialect" value="${db.dialect}" />
    <property name="javax.persistence.jdbc.url" value="${db.url}" />
    <property name="javax.persistence.jdbc.user" value="${db.user}" />
    <property name="javax.persistence.jdbc.password" value="${db.password}" />
    <property name="javax.persistence.jdbc.Schema" value="${db.schema}" />
</properties>

注意:我们使用 openJpa 作为 JPA 提供程序。

【问题讨论】:

  • 你在使用 Spring Framework 吗?
  • 没有。我们不使用 Spring。
  • 注意:Java EE 7 规范中没有提到名为javax.persistence.jdbc.dialect 的属性。
  • 什么时候可以解决?启动时?价值观的来源是什么?另一个xml?

标签: java jakarta-ee jpa openjpa


【解决方案1】:

通常,您会在容器中定义数据源并让 JPA 通过 JNDI 查找它。你是在 Spring/TomEE/Tomcat/Wildfly/Liberty 还是其他什么地方运行 JPA?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    相关资源
    最近更新 更多