persistence.xml中的持久性单位是在构建应用程序期间创建的.由于我想在运行时更改数据库url,有没有办法在运行时修改持久化单元?我应该使用不同的数据库,而不是预先绑定的数据库.
我使用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();