Spring批量读写同一个表

问题描述 投票:0回答:1

我正在使用 Spring Batch 读取表中的块数据,发送事件,并在事件发送时更改写入器中的布尔值。

示例:

我的阅读器(RepositoryItemReader)调用 JpaRepository 来检索状态未像这样发送的所有行

Page<Item> findbynotsent();

如果一切正常,进程发送通知并将发送的值设置为true

作者将 Item 保存在 bdd 中以将发送的值传递为 true

但是当读者执行第二个循环时,他错过了很多行,因为作者改变了状态条件。 因此,当读者第二次播放 sql 请求时,他会得到第二页。但实际上第二页是第一个请求的第三页,而 springBatch 错过了一页。我认为这是因为限制……抵消……

是否存在另一种解决方案来实现这个简单的情况?你还有其他我可以使用的工具吗?

感谢您的帮助

spring-batch java-17
1个回答
0
投票

分页阅读器不能很好地应对项目处理器或写入器中搜索条件的更改。以下是一些相关帖子:

您要么不需要在同一步骤中更改搜索条件,要么使用基于光标的阅读器(在这些情况下应该可以正常工作)。

© www.soinside.com 2019 - 2024. All rights reserved.