我们正在尝试配置Kumuluz JPA。
我们想以编程方式定制 Persistence Unit,为此,我们需要处理 PersistenceUnit 属性。这已经预先打包在 kumuluz jpa 依赖项中,我们显然无法在运行时处理这些属性。
有没有人遇到过在运行时必须设置属性的问题?你能分享你的方法吗?
我们正在尝试配置Kumuluz JPA。
我们想以编程方式定制 Persistence Unit,为此,我们需要处理 PersistenceUnit 属性。这已经预先打包在 kumuluz jpa 依赖项中,我们显然无法在运行时处理这些属性。
有没有人遇到过在运行时必须设置属性的问题?你能分享你的方法吗?
您无法在运行时访问 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>