关闭EntityManager org.datanucleus.exceptions.NucleusUserException

时间:2012-06-29 04:40:47

标签: jpa datanucleus entitymanager

我有以下方法:

public List<Profile> listProfiles(){
    EntityManager em = EMF.get().createEntityManager();
    List<Profile> list = null;
    try{

        Query q = em.createQuery("SELECT p FROM Profile p");
        list = (List<Profile>)q.getResultList();

    } catch(NoResultException ex){
        System.out.println("ERROR CATCHED: " + ex.getMessage());
    } finally{
        em.close(); 
    }

    return list;
}

访问返回列表将引发错误: org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed

我找到的一个技巧是在关闭实体管理器之前添加list.size():

finally{
    list.size();
    em.close(); 
}

我应该关闭实体经理吗?或者我错过了哪些概念?

1 个答案:

答案 0 :(得分:0)

另一个“概念”是使用GAE JPA插件的v2。它很久以前就已经发布了。