【问题标题】:NamedQueries JPA jax-rs REST WHERE EqualsNamedQueries JPA jax-rs REST WHERE Equals
【发布时间】:2015-12-02 12:27:46
【问题描述】:

我正在按照this guide 创建一个 REST 服务,现在我想在两个不同的列中获取具有特定值的表行。

然后就可以用JSP来呈现了。

这可能吗?如果是这样,我该如何做到这一点?

【问题讨论】:

    标签: rest jsp jpa jax-rs


    【解决方案1】:

    这是您的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 中呈现它,您现在可以使用例如:

    &lt;c:forEach items="${items}" var="item"&gt;

    然后:

    <p>firstname: ${item.firstname}</p>
    

    当然根据你的需要。

    【讨论】:

    • 天哪,谢谢!最后!
    • @TheIntern 没问题,很高兴我能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2016-12-18
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2018-12-17
    相关资源
    最近更新 更多