繁体   English   中英

如何使用JSF和EJB在Java Web应用程序中实现@NamedQuery

[英]How to implement @NamedQuery in Java Web application using JSF and EJB

所以我在这里是菜鸟,我已经在NetBeans中创建了Java Web应用程序,并从数据库创建了Entity Classs (可以说我在数据库中只有一个表,它生成了名为USER的表)。

  1. User.java
  2. UserController.java
  3. UserFacade.java
  4. AbstractFacade.java

并且已经从实体类创建了JSF页面。 它产生了

  1. Create.xhtml
  2. Edit.xhtml
  3. List.xhtml
  4. View.xhtml

在User.java中,我有

@NamedQuery(name =“ Users.findByName”,query =“从用户中选择u uname =:name”),

我需要在View.xhtml中增加该查询的方法,因为我只需要按名称显示用户,而不是全部。 有人可以给我指示吗?

如前所述,很难知道您想要什么。 “在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();
}

我不知道如何调用此方法,因为要求不明确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM