gpt4 book ai didi

java - 动态更改持久性单元 - JPA

转载 作者:太空狗 更新时间:2023-10-29 23:01:49 26 4
gpt4 key购买 nike

persistence.xml 中的持久性单元是在构建应用程序期间创建的。由于我想在运行时更改数据库 url,有没有办法在运行时修改持久性单元?我应该在分发后使用不同于预绑定(bind)数据库的其他数据库。

我正在使用 EclipseLink (JPA 2.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();

关于java - 动态更改持久性单元 - JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com