所以我在这里是一个菜鸟,我在NetBeans中创建了Java Web应用程序,从数据库创建了实体类(假设我在数据库中只有一个名为 USER 它生成了
并且已经从实体类创建了JSF页面。它生成了
在User.java中我有
@NamedQuery(name =" Users.findByName",query =" SELECT u FROM Users u WHERE u.name =:name"),
我需要了解如何在我的View.xhtml中使用此查询,因为我只需要按名称显示用户并非全部。有人可以给我一个指示。
答案 0 :(得分:1)
如前所述,很难知道你想要什么。要在View.xhtml"中实现查询。是否有意义,因为NamedQuery将返回一个用户列表,而View.xhtml只能显示1个用户。
从List.xhtml中使用它会更有意义,但是使用数据表过滤会更容易;
之类的东西<p:column filterBy="#{item.name}" filterMatchMode="contains">
<f:facet name="header">
Name
</f:facet>
<h:outputText value="#{item.name}"/>
</p:column>
如果你想要/需要使用NamedQuery,你需要在EJB上创建一个方法(= UserFacade);
之类的东西public List<User> findByName(String name) {
return em.createNamedQuery("Users.findByName").setParameter("name", name).getResultList();
}
你怎么称呼这种方法我不知道,因为要求不明确。