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

时间:2013-12-09 12:27:01

标签: java java-ee jpa openjpa

我们在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中的动态属性外部化为类似于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>

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

1 个答案:

答案 0 :(得分:0)

通常,您将在容器中定义数据源,并让JPA通过JNDI查找它。您要在Spring / TomEE / Tomcat / Wildfly / Liberty或其他版本中运行JPA吗?