我目前正在尝试构建一个页面,该页面将有一个datatable,该数据表允许根据为每一列设置的标准进行筛选。根据文档,openfaces hibernateCriterionBuilder是使用hibernate实现此操作的最简单方法。构建器用于排序很好,但是一旦传递筛选条件,它就会抛出一个错误:
严厉: javax.el.ELException: /tools/orders/orderPicker.xhtml @24,168 value="#{orderPicker.orders}":org.hibernate.QueryException:未能解析属性: /tools/orders/orderPicker of: pojo.Orders
据我所知,这是部分hibernateCriterionBuilder未能正确解析过滤数据,这使我怀疑我做错了什么。对构建者的调用如下所示:
Session session = resources.HibernateUtil.getSessionFactory().openSession();
Criteria criteria = HibernateCriterionBuilder.buildCriteria(session, pojo.Orders.class);
orders = criteria.list();下表:
<o:dataTable value="#{orderPicker.orders}" var="item" customDataProviding="true" totalRowCount="#{orderPicker.rowCount}" pageSize="10">
<o:column sortingExpression="#{item.distId}" id="distId" >
<f:facet name="header">
distId
</f:facet>
<f:facet name="subHeader">
<o:dropDownFieldFilter condition="beginsWith" />
</f:facet>
<h:outputText value="#{item.distId}" />
</o:column>
</o:dataTable>任何帮助或洞察力都将不胜感激。
发布于 2011-01-17 17:12:07
我很抱歉回答了我自己的问题,但我发现自己做错了什么。当使用带有筛选器的customDataProver时,您需要定义过滤器的表达式属性,以便与要映射到的hibernate属性相等。
改变
<o:dropDownFieldFilter condition="beginsWith" />至
<o:dropDownFieldFilter condition="beginsWith" expression="distId" />一切都很顺利。
https://stackoverflow.com/questions/4715037
复制相似问题