Нарезка через RepositoryItemReader вместо пейджинга (чтобы избежать повторных запросов количества) - PullRequest
0 голосов
/ 30 мая 2019

В RepositoryItemReader мы хотим избежать повторных подсчетов производительности и использовать метод с «Slice» вместо «Page» из JpaRepository (все еще Pageable как параметр в методе). Он завершается неудачно при приведении к «Page» в методе «doPageRead» - и не дает прямой возможности переопределения, даже если в документации есть комментарии, которые он должен иметь. Любые рекомендации о том, как переопределить, или есть ли другой способ использовать RepositoryItemReader с кусочками вместо страниц, кроме копирования всего RepositoryItemReader в другую реализацию, которая не выполняет это приведение? Заранее спасибо.

Текущий метод в RepositoryItemReader мы хотели бы изменить приведение к «Страница» с «Срез»:

protected List<T> doPageRead() throws Exception {
    Pageable pageRequest = PageRequest.of(page, pageSize, sort);

    MethodInvoker invoker = createMethodInvoker(repository, methodName);

    List<Object> parameters = new ArrayList<>();

    if(arguments != null && arguments.size() > 0) {
        parameters.addAll(arguments);
    }

    parameters.add(pageRequest);

    invoker.setArguments(parameters.toArray());

    Page<T> curPage = (Page<T>) doInvoke(invoker);

    return curPage.getContent();
}

На этой странице прочитайте (doPageRead) - я вижу, что в javadoc он комментируется как возможность переопределения, но многие из полей / методов являются закрытыми? У кого-нибудь есть прямые примеры минимального количества переопределения, необходимого для doPageRead?

...