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

Set value of persistence.xml file with properties.config file

我想用 properties.config.

中的值设置 persistence.xml 文件的值

有什么办法吗?像任何内置函数一样?

我想像

这样的函数
factory.setvaluesfrompersistence(config.getpropertie("name"));

我想这样做,因为我不想在 persistence.xml 中设置我的个人价值观,所以如果我部署这个版本,那里没有任何有用的数据。

我使用 EclipseLink 作为 JPA Propvider

我的properties.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文件中的键并赋予它一个新值。