0

我们正在尝试配置Kumuluz JPA

我们想以编程方式定制 Persistence Unit,为此,我们需要处理 PersistenceUnit 属性。这已经预先打包在 kumuluz jpa 依赖项中,我们显然无法在运行时处理这些属性。

有没有人遇到过在运行时必须设置属性的问题?你能分享你的方法吗?

4

1 回答 1

1

您无法在运行时访问 persistence.xml 配置,这样做也没有任何意义,因为 JPA 提供程序仅在应用程序启动的最开始时才读取 persistence.xml。

但是,您可以使用Maven 资源插件在构建时使用 Maven 配置来配置 persistence.xml 。例如:

pom.xml:

<project>
  ...
  <properties>
    <db.action>create</db.action>
  </properties>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
  </build>
  ...
</project>

持久性.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
    <persistence-unit name="kumuluzee-samples-jpa" transaction-type="JTA">

        <jta-data-source>jdbc/CustomersDS</jta-data-source>

        <class>com.kumuluz.ee.samples.jpa.Customer</class>

        <properties>
            <property name="javax.persistence.schema-generation.database.action" value="${db.action}"/>
        </properties>
    </persistence-unit>
</persistence>
于 2020-11-13T06:50:56.633 回答