Начальная загрузка LazyDataModel вызывается несколько раз - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть этот набор данных, который я реализовал с помощью LazyDataModel от Primefaces. Все работает отлично, за исключением начальной загрузки, когда я открываю страницу в первый раз или refre sh. Метод загрузки вызывается 6-7 раз.

Когда я меняю страницу, фильтрую или сортирую, она работает правильно, загрузка вызывается только один раз.

Поскольку я выполняю вызовы в базу данных, мне бы хотелось чтобы не вызывать его больше, чем нужно.

У меня есть следующее:

X HTML:

    <p:outputPanel id="documentsPanel">
        <h:form id="documentsForm">
            <p:dataTable id="documentsTable"
                         widgetVar="documentsTable"
                         var="doc"
                         value="#{MyManagedBean.model}"
                         paginator="true" rows="20"
                         paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CurrentPageReport}"
                         currentPageReportTemplate="{totalRecords} #{c.NumberOfRequestFound}"
                         lazy="true">
     ...

            </p:dataTable>
        </h:form>
    </p:outputPanel>

Java:

public class DocumentEncodingDataModel extends LazyDataModel<SelectableDocumentToBeEncodedDTO> {

@Override
public List<SelectableDocumentToBeEncodedDTO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
   ....
}

@Override
public int getRowCount() {
    return super.getRowCount();
}

@Override
public SelectableDocumentToBeEncodedDTO getRowData(String rowKey) {
    log.debug("getRowData");
    if (!StringUtils.isBlank(rowKey)) {
        for (SelectableDocumentToBeEncodedDTO doc : currentDocumentsToBeEncoded) {
            if (doc.getDocumentToBeEncoded().getId().toString().equals(rowKey)) {
                return doc;
            }
        }
    }
    return null;
}

@Override
public Object getRowKey(SelectableDocumentToBeEncodedDTO doc) {
    return doc.getDocumentToBeEncoded().getId();
}

}

Версия Primefaces: 6.2 Версия JSF: 2.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...