我目前正在尝试构建一个页面,该页面将具有允许根据为每列设置的条件进行过滤的数据表。根据文档,openfaces hibernateCriterionBuilder是使用hibernate完成此任务的最简单方法。构建器适用于排序,但只要传递过滤条件,它就会抛出错误:
SEVERE: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>
任何帮助或见解都将不胜感激。
答案 0 :(得分:0)
我为回答我自己的问题而道歉,但我弄清楚我做错了什么。将customDataProver与过滤器一起使用时,需要将过滤器的表达式属性定义为等于您要映射到的hibernate属性。
更改
<o:dropDownFieldFilter condition="beginsWith" />
到
<o:dropDownFieldFilter condition="beginsWith" expression="distId" />
让一切正常。