Как правильно взаимодействовать с simplePagination?

Добрый день! В качестве источника данных использую rest запрос на сторонний сервис и использую loadDelegate. В таблице сущностей добавил simplePagination. Для пагинации я должен выполнять запрос, передавая pageNumber и pageSize. Делаю примерно так:

@Autowired
private CustomerService customerService;

@Install(to = "customersDl", target = Target.DATA_LOADER) 
protected List<Customer> customersDlLoadDelegate(LoadContext<Customer> loadContext) { 
    LoadContext.Query query = loadContext.getQuery();
    return customerService.loadCustomers( 
            query.getCondition(),
            query.getSort(),
            query.getFirstResult(),
            query.getMaxResults()
    );
}

Но query.getFirstResult() все время выдает 0 и подкачивается по сути всегда 0 страница, как это можно исправить?

Скорее всего нужно пагинации добавить TotalCountDelegate.

добавил, но не помогает, при попытке пролистывания далее ничего не происходит
Снимок экрана 2023-10-31 в 09.35.39

customersDlLoadDelegate не вызывается?

вызывается, но getFirstResult() все время возвращает 0, из-за чего подкачивается всегда 0 страница

Вы уверены? Я ток что попробовал сделать тестовый проект. При попытке пролистывания getFirstResult возвращает 20. Если сервис ничего не возвращает (пустой список). LoadDelegate вызывается со старым значением.

Мб у вас в сервисе как-то не так обработка идет? К примеру getFirstResult - это не page, а offset. Из за чего тот возвращает пустой список?

Вот мой тестовый проект.
jmix-test.zip (152.3 КБ)

Спасибо, вроде поправил, ошибки больше нет, только вопрос можно как-то заранее проставить значение вместо ? знака (см скрин) знаю, что можно поставить значение autoLoad=“true”, но тогда он кажет 0
Снимок экрана 2023-10-31 в 15.29.49

Судя по коду. autoLoad не проверяет, стоит ли у simplePaginantion TotalCountDelegate - вопрос канечно почему так…

Можно попробовать кликнуть кнопку программно.

        val unwrap = simplePagination.unwrap(JmixSimplePagination::class.java)
        unwrap.countButton.click()
1 симпатия

Спасибо