由于某种原因,我需要在程序执行期间动态更改persistence.xml的内容,(使用JPA),我需要更改主机地址。这可能吗?
非常感谢
问问题
6774 次
1 回答
8
您可以使用createEntityManagerFactory(unitName, map)
方法来更改Persistence Context
. 在我的示例中,Persistence Unit Name
将是 dynamicJPA。
例子 :
protected EntityManager getEntityManager(String driver, String url, String username, String password) {
EntityManager em = null;
Map properties = new HashMap();
properties.put("javax.persistence.jdbc.driver", driver);
properties.put("javax.persistence.jdbc.url", url);
properties.put("javax.persistence.jdbc.user", username);
properties.put("javax.persistence.jdbc.password", password);
try {
emf = Persistence.createEntityManagerFactory("dynamicJPA", properties);
} catch (Exception e) {
e.printStackTrace();
}
return em = (EntityManager) emf.createEntityManager();
}
您还可以使用PersistenceUnitMetaData
.ReferenceDataNucleus
动态生成的 Persistence-Unit
于 2012-10-30T14:30:49.693 回答