Openfaces:使用带有数据表过滤器的hibernateCriterionBuilder

时间:2011-01-17 15:47:23

标签: hibernate jsf openfaces

我目前正在尝试构建一个页面,该页面将具有允许根据为每列设置的条件进行过滤的数据表。根据文档,openfaces hibernateCriterionBuilder是使用hibernate完成此任务的最简单方法。构建器适用于排序,但只要传递过滤条件,它就会抛出错误:

  

SEVERE:javax.el.E​​LException:/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>

任何帮助或见解都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我为回答我自己的问题而道歉,但我弄清楚我做错了什么。将customDataProver与过滤器一起使用时,需要将过滤器的表达式属性定义为等于您要映射到的hibernate属性。

更改

<o:dropDownFieldFilter condition="beginsWith" />

<o:dropDownFieldFilter condition="beginsWith" expression="distId" />

让一切正常。