使用properties.config文件设置persistence.xml文件的值



我想用properties.config中的值设置persistence.xml文件的值。

有办法做到这一点吗?像任何内置函数一样?

我认为像这样的函数

factory.setvaluesfrompersistence(config.getpropertie("name"));

我想这样做,因为我不想在persistence.xml中设置我的个人值,所以如果我部署这个版本,那里就没有可重复的数据。

我使用EclipseLink作为JPA Propvider

我的属性.config:

db.url=
db.user=
db.psw= 

和我的persistens.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<persistence
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="test"
transaction-type="RESOURCE_LOCAL">
<class>my.test.test</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="" />
<property name="javax.persistence.jdbc.url"
value="" />
<property name="javax.persistence.jdbc.user" value="" />
<property name="javax.persistence.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>

我怎么称呼它:

factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
final EntityManager em = factory.createEntityManager();
final Query q = em.createQuery("select b from Beruf b");
final List<Beruf> BerufeList = q.getResultList();
for (final Beruf beruf : BerufeList) {
System.out.println(beruf);
}
em.close();

解决方案

是创建一个Map,您可以在其中从persistence.xml文件设置密钥,并为其赋予一个新值。

最新更新