什么决定了持久性单位

时间:2016-03-10 18:53:38

标签: hibernate jpa factory entitymanager persistence-unit

我正在创建一个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...
}

因为可以有多个持久单元,所以我可以在使用它们时懒得加载它们。

我是这样创建的,因为我知道可以有多个持久单元。我不理解,似乎无法找到答案的是什么会让我创建另一个持久单元?有一件事是我会假设多个数据库,但还有其他任何分工点吗?

1 个答案:

答案 0 :(得分:0)

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