我正在使用 JPA (hibernate)、JAX-RS (Jersey) 和 Jackson。
构建并发送数据包后,如何关闭实体管理器?
以下不起作用并给我一个错误。它似乎在响应完成之前调用 em.close() 。
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getNode( @QueryParam("nodeId") long nodeId ){
try {
Node node = em.find(Node.class, nodeId);
if (node == null) throw new WebApplicationException(Response.Status.NOT_FOUND);
Response response = Response.ok(node, MediaType.APPLICATION_JSON).build();
return response;
}
finally { em.close(); }
}
严重:servlet [JAX-RS Servlet] 的 Servlet.service() 在路径 [] 的上下文中抛出异常 org.codehaus.jackson.map.JsonMappingException:未能延迟初始化角色集合:com.company.entity.Node。 childList,没有会话或会话被关闭(通过引用链:com.company.entity.Node["childIdList"])
我正在其他类似方法中使用事务。