我在 META-INF/ 文件夹中有一个 persistence.xml:
<persistence-unit name="dev" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/events" />
<property name="javax.persistence.jdbc.user" value="postgres" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" />
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
在 java 代码中,我从该 persistence.xml 创建实体管理器工厂
_emf = Persistence.createEntityManagerFactory("dev");
_em = _emf.createEntityManager();
但是我只想动态更改 jdbc url/user/password 以进行测试,我的计划是将这些参数保存在配置文件中并根据需要读取它们,所以有没有办法在我从持久性创建 entitymanagerfactory 后更新它们。 xml?所以它会这样:
_emf = Persistence.createEntityManagerFactory("dev");
_emf.setProperties("url", "test_url");
... other setts here ...
_em = _emf.createEntityManager();
谢谢