私はJPAJPA(冬眠)、JAX-RS(ジャージー)、ジャクソンを使用しています。ジャンパーと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(); }
}
SEVERE:サーブレット用のServlet.service()JAX-RSサーブレット] 経路に関連して[]は、例外org.codehaus.jackson.map.JsonMappingExceptionを投げ: はレイジーコレクションの初期化に失敗しました役割の: com.company.entity.Node.childList、いかなるセッションまたはセッションは、(参照チェーンを介し:com.company.entity.Node [ "childIdList"]) を閉じなかった私はトランザクションを使用してい
他の同様の方法。