В 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?