3
出於某種原因,我需要在程序執行期間(使用JPA)動態更改persistence.xml的內容,我需要更改主機的地址。這可能嗎?
非常感謝執行期間動態更改persistence.xml中的內容
出於某種原因,我需要在程序執行期間(使用JPA)動態更改persistence.xml的內容,我需要更改主機的地址。這可能嗎?
非常感謝執行期間動態更改persistence.xml中的內容
您可以使用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();
}
您也可以使用。參照Dynamically generated Persistence-UnitDataNucleus
PersistenceUnitMetaData
的
不知道這是否會幫助http://stackoverflow.com/questions/6355905/change-values-在持久性的XML由內最程序 – gtgaxiola