如何在EJB3和JSF中使用select语句获取列表的一个实例
现在我正在使用EJB3 在无状态Bean中,我创建方法获取实体的所有实例如何在EJB3和JSF中使用select语句获取列表的一个实例,jsf,ejb,Jsf,Ejb,现在我正在使用EJB3 在无状态Bean中,我创建方法获取实体的所有实例 public List<About> retrieveAllAbout(){ return em.createNameQuery("About.findAll").getResultList(); } public List retrieveAllAbout(){ 返回em.createNameQuery(“About.findAll”).getResultList(); } 现在我
public List<About> retrieveAllAbout(){
return em.createNameQuery("About.findAll").getResultList();
}
public List retrieveAllAbout(){
返回em.createNameQuery(“About.findAll”).getResultList();
}
现在我想得到一行列表,以传递到js页面。我该怎么做
在jsf页面(xhtml)中,我想显示列表示例的一个值
<h:outputText value="#{bean.value}" />
(在数据库中,我有一行,只有一行需要选择,否则,如果我有很多行,我如何选择并获取一行并将其显示给JSF页面)尝试使用getSingleResult方法,并让“retrieveAllAbout”方法返回“About”对象而不是列表。 若数据库中有更多行,而您正试图获取第一行,请使用getFirstResult。否则,在定义查询时必须更加具体
我尝试使用getSingleResult方法,但不适用于我,在JSF ManagedBean中,我在JSF Manage bean示例的构造函数中创建新实例
public构造函数(){About=new About(statelessbean.retreiveAllAbout)}
在关于实体中,我创建构造函数示例public About(String value){this.value=value}
请帮忙me@MYE:About不是字符串,因此永远不会调用构造函数。此外,不需要调用构造函数。在Java中,所有变量都是按值传递的,但所有对象变量实际上都是引用。您的代码有一些错误:“About”是您的类名,因此不能用作变量;在函数返回对象引用时,无需调用构造函数。因此,您的代码应该如下所示:public Constructor(){about=statelessbean.retrieveAllabout;}。您的bean中需要有默认构造函数。@MYE:将问题中所发布的代码中的getResultList()
更改为getFirstResult()
,这样就行了。如果只想调用一次,请使用@PostConstruct
,因为调用construct时,em
尚未注入。如果仍然无效,请提出新问题。这与当前问题中的问题无关。谢谢两位,我可以做到:D,但我有新问题,我将发布它,请帮助我:D和新问题