0

我正在创建一个 Java EE 应用程序并使用休眠设置我的持久性。因为我没有看到这个应用程序有那么大,所以我没有看到使用 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...
}

因此,由于可以有多个持久单元,我可以在使用它们时延迟加载它们。

我以这种方式创建它是因为我知道可以有多个持久单元。我不明白并且似乎找不到答案的是什么会让我创建另一个持久单元?一件事是我假设的多个数据库,但还有其他划分点吗?

4

1 回答 1

0

通常为不同的数据库创建一个单独的持久性单元。然而,这并不是唯一的原因。您可以为同一个数据库设计多个持久性单元,但具有不同的配置或类,即当您在多个环境中部署应用程序时。

于 2016-03-10T21:27:19.413 回答