我正在创建 Jax-RS 资源。我想返回响应中的记录总数。我正在使用命名查询和标头函数来添加特定的“Count”变量,如下所示:
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response findAll(
@QueryParam("offset") int offset,
@QueryParam("limit") int limit) {
EntityManager em = factory.createEntityManager();
Query query;
try {
query = em.createNamedQuery("User.getCount");
String count = ((Long) query.getSingleResult()).toString();
query = em.createNamedQuery("User.findAll");
List<T> list = query.setFirstResult(safeOffset(offset))
.setMaxResults(safeLimit(limit))
.getResultList();
return Response.ok(new GenericEntity<List<User>>(list) {})
.header("Count", count)
.build();
} catch (Exception e) {
return Response.serverError().build();
} finally {
em.close();
}
}
我想知道是否有更好的方法来计算并返回找到的记录总数?
你可以看看这个链接!它处理 ListResource 来构造返回的 JSON 数据: http://www.twilio.com/docs/api/rest/response#response-formats-list
http://twilio.github.io/twilio-java/com/twilio/sdk/resource/ListResource.html