Открытые лица: использование hibernateCriterionBuilder с фильтрами данных - PullRequest
0 голосов
/ 17 января 2011

В настоящее время я пытаюсь создать страницу с таблицей данных, которая позволяет выполнять фильтрацию на основе критериев, установленных для каждого столбца. Согласно документации, openfaces hibernateCriterionBuilder - это самый простой способ сделать это с помощью hibernate. Конструктор отлично работает для сортировки, но как только критерии фильтрации пройдены, он выдает ошибку:

SEVERE: javax.el.ELException: /tools/orders/orderPicker.xhtml @ 24,168 value = "# {orderPicker.orders}": org.hibernate.QueryException: не удалось разрешить свойство: / tools / orders / orderPicker из : 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 голосов
/ 17 января 2011

Я прошу прощения за ответ на свой вопрос, но я понял, что я делаю неправильно.При использовании customDataProver с фильтрами необходимо определить атрибут выражения фильтра, который будет равен свойству hibernate, которому вы пытаетесь сопоставить.

Изменение

<o:dropDownFieldFilter condition="beginsWith" />

на

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

Сделано все работает нормально.

...