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

标签 java jakarta-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 中外部化动态属性,如下所示。

<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 提供程序。

最佳答案

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

关于java - 在 persistence.xml 中外部化动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20470679/

相关文章:

java - 在 Apache Camel 中访问拆分 entrySet 的主体

java - tomcat7日志不断重复同样的错误

java - 如何在 JPA 中将默认值设置为 CURRENT_TIMESTAMP?

java - Hibernate缓存和MySql查询缓存

java - 如何使用 Class.forName 的结果创建泛型类的实例

java - 为什么使用相同种子创建的两个 Random 对象从 hashcode() 产生不同的结果

java - 在 AppEngine 中从 Servlet 调用 Web 服务

java - 写入数据库时​​错误的 UTF-8 编码(读取正常)

java - 在java中读取属性文件的有效方法

java - 处理同一页面上没有请求的丢失文件下载链接