我遇到了一个小问题,我总是使用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;
}
答案 0 :(得分:0)
您仍然可以在没有Spring或其他容器的情况下使用依赖注入模式 - 在一个位置创建EntityManagerFactory
并在创建它时将其注入DAO对象。