NamedQueries JPA jax-rs REST WHERE 等于
NamedQueries JPA jax-rs REST WHERE Equals
我正在 this guide 之后创建一个 REST 服务,现在我想在两个不同的列中获取具有特定值的 table 行。
然后可以在JSP中呈现。
这可能吗?如果可以,我该如何做到这一点?
这是您的 yourNameFacadeREST
的示例:
@GET
@Override
@Produces({"application/xml", "application/json"})
public List<ExampleTable> testFindByName() {
List<ExampleTable> results = em.createNamedQuery("ExampleTable.findByName", ExampleTable.class)
.setParameter("firstname", 1)
.setParameter("lastname", 1)
.getResultList();
return results;
}
@GET
@Path("test")
@Produces(MediaType.TEXT_HTML)
public void findName(
@Context final HttpServletRequest request,
@Context final HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/foundbyname.jsp");
request.setAttribute("items", testFindByName());
dispatcher.forward(request, response);
}
不要忘记将@NamedQuery 更改为(如下例):
@NamedQuery(name = "ExampleTable.findByName", query = "SELECT e FROM ExampleTable e WHERE e.firstname = :firstname AND e.lastname = :lastname")
这将找到名字为“1”和姓氏为“1”的行。
要在 JSP 中显示它,您现在可以使用例如:
<c:forEach items="${items}" var="item">
然后:
<p>firstname: ${item.firstname}</p>
当然根据你的需要。
我正在 this guide 之后创建一个 REST 服务,现在我想在两个不同的列中获取具有特定值的 table 行。
然后可以在JSP中呈现。
这可能吗?如果可以,我该如何做到这一点?
这是您的 yourNameFacadeREST
的示例:
@GET
@Override
@Produces({"application/xml", "application/json"})
public List<ExampleTable> testFindByName() {
List<ExampleTable> results = em.createNamedQuery("ExampleTable.findByName", ExampleTable.class)
.setParameter("firstname", 1)
.setParameter("lastname", 1)
.getResultList();
return results;
}
@GET
@Path("test")
@Produces(MediaType.TEXT_HTML)
public void findName(
@Context final HttpServletRequest request,
@Context final HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/foundbyname.jsp");
request.setAttribute("items", testFindByName());
dispatcher.forward(request, response);
}
不要忘记将@NamedQuery 更改为(如下例):
@NamedQuery(name = "ExampleTable.findByName", query = "SELECT e FROM ExampleTable e WHERE e.firstname = :firstname AND e.lastname = :lastname")
这将找到名字为“1”和姓氏为“1”的行。
要在 JSP 中显示它,您现在可以使用例如:
<c:forEach items="${items}" var="item">
然后:
<p>firstname: ${item.firstname}</p>
当然根据你的需要。