问题
我遇到的问题
RepositoryItemReader
在我的
春季批次
在读取过程中跳过项目的作业。我已配置
RepositoryItemReader
具有特定
分页大小
并将其与
块大小
步骤的。然而,一些项目正在
跳过
,我无法确定问题的根本原因。
我读了答案
here
在我写问题之前,但我找不到解决我的问题的办法。
以下是我的设置的相关详细信息:
我正在使用
春季批次v5
.
这个
RepositoryItemReader
正在使用从存储库读取数据
findByIsEnabled
方法
我已经设置了
pageSize
的值设置为与步骤定义中的块大小相同的值。
我已经验证了没有任何筛选器或条件应用于RepositoryItemReader以排除项目。
RepositoryItemReader使用的存储库是事务性的,读取器调用的方法在同一事务中执行。
我已经检查了数据源中是否存在任何可能导致跳过的不一致或缺失项目,但一切似乎都正常。
将近一半的页面被跳过
(4961/1000)项目比率
更新:我创建了一个简单的演示应用程序来重现这个问题。你可以在我的GitHub存储库中找到代码:
GitHub Repository Link
顶部的示例使用h2嵌入式数据库,您只需运行它就可以看到结果。
我怀疑可能存在分页逻辑问题或某些错误配置,导致读者跳过下一页。我已经查看了
Spring Batch文档
并尝试了各种配置,但我无法确定这种行为的根本原因。
有人能帮我找出这种跳过行为的潜在原因吗
RepositoryItemReader
? 如有任何建议或见解,我们将不胜感激。