在RepositoryItemReader中,我们希望避免重复计算性能,并使用JpaRepository中带有“ Slice”而不是“ Page”的方法(方法中仍将Pageable作为参数)。当在“ doPageRead”方法中转换为“ Page”时,它会失败-并且即使文档注释应该能够覆盖,也无法简单地覆盖它。除了如何将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所需的最小替代量的简单示例吗?