在非托管环境中进行Hibernate

时间:2011-07-22 07:47:44

标签: hibernate jpa hibernate-entitymanager

我遇到了一个小问题,我总是使用GenericDAO模式处理Hibernate和Spring on Web的东西,现在我正在使用Hibernate作为GUI应用程序,它不使用像EJB和东西这样的东西。

我的主要问题是我曾经有过这个

@PersistenceContext(unitName = "persistenceUnit") private EntityManager em;

但现在我这样做了:

private EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit"); private EntityManager em = emf.createEntityManager();

我注意到一个很大的缺陷是,每当我继承这个GenericDAO类时,我每次都在创建一个EntityManagerFactory,我该怎么办?

编辑:

同意这是解决问题的最佳方法吗?

private EntityManagerFactory emf;
private static final Connector INSTANCE = new Connector();

public static Connector getInstance() {
    return INSTANCE;
}   

private Connector(){        
    emf = Persistence.createEntityManagerFactory("persistenceUnit");
}

public EntityManagerFactory getEmf() {      
return emf;
}

1 个答案:

答案 0 :(得分:0)

您仍然可以在没有Spring或其他容器的情况下使用依赖注入模式 - 在一个位置创建EntityManagerFactory并在创建它时将其注入DAO对象。