我正在创建一个Java EE应用程序并使用hibernate设置我的持久性。由于我没有看到这个应用程序那么大,我没有看到使用EJB的重点,所以我创建了一个PersistenceUtil类来管理我的EntityManagerFactory。
这样的事情:
private static HashMap<String, Object> emfMap = new HashMap<String, Object>();
public static EntityManager getEntityManagerFor(String unitName){
if(!emfMap.isEmpty() || !emfMap.containsKey(unitName)){
EntityManagerFactory emf = Persistence.createEntityManagerFactory(unitName);
emfMap.put(unitName, emf);
return emf.createEntityManager();
} else {
//return the one that exists...
}
因为可以有多个持久单元,所以我可以在使用它们时懒得加载它们。
我是这样创建的,因为我知道可以有多个持久单元。我不理解,似乎无法找到答案的是什么会让我创建另一个持久单元?有一件事是我会假设多个数据库,但还有其他任何分工点吗?
答案 0 :(得分:0)
通常,对于不同的数据库,您可以创建单独的持久性单元。然而,这不是唯一的原因。您可以为同一个数据库设计多个持久性单元,但具有不同的配置或类,即在多个环境中部署应用程序时。