在persistence.xml中外部化动态属性

Jav*_*kar 6 java jpa openjpa java-ee

我们在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>
Run Code Online (Sandbox Code Playgroud)

但我希望将persistence.xml中的动态属性外部化为类似于bellow的东西.

<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>
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*her 0

通常,您会在容器中定义数据源,并让 JPA 通过 JNDI 查找它。您是否在 Spring/TomEE/Tomcat/Wildfly/Liberty 或其他环境中运行 JPA?