我将googleappengine与datanucleus和JPA结合使用。我很难理解如何从数据存储中读取数据并将其传递给JSP。如果我用entitymanager加载POJO列表并将其传递给JSP,它将崩溃到org.datanucleus.exceptions.NucleusUserException:Object Manager已经关闭。
我明白为什么会这样。显然,因为我获取了列表,所以关闭实体管理器并将其传递给JSP,此时它将失败,因为列表是懒惰的。我怎么列这个单子
不是
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("parties", getParties());
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/parties.jsp");
dispatcher.forward(req, resp);
}
private List<Party> getParties(){
EntityManager em = entityManagerProvider.get();
try{
Query query = em.createQuery("SELECT p FROM Party p");
return query.getResultList();
}finally{
em.close();
}
}