【发布时间】:2012-05-13 12:55:07
【问题描述】:
我正在使用 JPA(休眠)、JAX-RS(泽西)和杰克逊。
构建并发送数据包后,如何关闭实体管理器?
以下不起作用并给我一个错误。它似乎在响应完成之前调用 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.service() 用于 servlet [JAX-RS Servlet] 在上下文中 path [] 抛出异常 org.codehaus.jackson.map.JsonMappingException: 未能延迟初始化角色集合: com.company.entity.Node.childList,没有会话或会话被关闭 (通过引用链:com.company.entity.Node["childIdList"])
我正在使用其他类似方法的交易。
【问题讨论】:
标签: java jakarta-ee jpa jax-rs jackson