我应该在每个函数中创建并关闭EntityManagerFactory吗?或者我应该在应用程序启动时创建它,并在应用程序关闭时关闭它?我怎样才能做到这一点呢?
例如:
我有两个函数:
从数据库获取对象的函数:
private List<SomeItems> getItems() {
    List<SomeItems> resultList = new ArrayList<SomeItems>();
    entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
    entityManager = entityManagerFactory.createEntityManager();
    entityManager.getTransaction().begin();
    TypedQuery<SomeItems> query = entityManager.createQuery(
            "select n from SomeItems n", SomeItems.class);
    resultList = query.getResultList();
    entityManager.getTransaction().commit();
    entityManager.close();
    entityManagerFactory.close();
    return resultList;
}仅获取项目名称的函数:
private List<String> getItemsName() {
List<String> resultList = new ArrayList<String>();
entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
TypedQuery<String> query = entityManager.createQuery(
        "select n.name from SomeItems n", String.class);
resultList = query.getResultList();
entityManager.getTransaction().commit();
entityManager.close();
entityManagerFactory.close();
return resultList;
}我该如何改进呢?
https://stackoverflow.com/questions/38232368
复制相似问题