小编典典

动态更改持久性单元-JPA

java

在构建应用程序时会创建persistence.xml中的持久性单元。由于我想在运行时更改数据库URL,是否有任何方法可以在运行时修改持久性单元?我应该使用其他数据库,而不是在分发后预先绑定一个数据库。

我正在使用EclipseLink(JPA 2.1)


阅读 210

收藏
2020-09-11

共1个答案

小编典典

保持持久性单元文件(Persistence.xml)不变。您可以按如下所示覆盖其中的属性。

EntityManagerFactory managerFactory = null;
Map<String, String> persistenceMap = new HashMap<String, String>();

persistenceMap.put("javax.persistence.jdbc.url", "<url>");
persistenceMap.put("javax.persistence.jdbc.user", "<username>");
persistenceMap.put("javax.persistence.jdbc.password", "<password>");
persistenceMap.put("javax.persistence.jdbc.driver", "<driver>");

managerFactory = Persistence.createEntityManagerFactory("<current persistence unit>", persistenceMap);
manager = managerFactory.createEntityManager();
2020-09-11