理由により、プログラムの実行中に (JPA を使用して) persistence.xml の内容を動的に変更する必要があり、ホストのアドレスを変更する必要があります。これは可能ですか?
どうもありがとうございました
質問する
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();
}
.Reference Dynamically generated Persistence-UnitPersistenceUnitMetaData
を使用することもできますDataNucleus
于 2012-10-30T14:30:49.693 に答える