Spring 批处理:从数据库中读取并了解之前处理过的 ID?

Spring Batch: reading from a database and being aware of the previous processed id?

我正在尝试设置 Spring Batch 每天将数据库记录从 Oracle 移动到 Cassandra

我知道我可以根据其他实体 table(比如我存储以前完成的 Id + 日期或类似内容的 MyBatchProgress)手动定义 JPA 存储库查询,以便下一个批处理作业知道从哪个实体开始进行进一步的操作。

我的问题是:Spring Batch 是否提供类似这样的内置功能(也通过利用 Spring Data JPA)?

或者这是我必须在工作 reader 步骤中手动编写的内容,我只是在该步骤中获取存储在我的自定义“进度” table 中的 last Id

提前致谢!

您可以将最后一个 ID 存储在执行上下文中,该 ID 持久保存在元数据表中。有了它,您可以让启动作业的代码查找最后一次作业执行,从其上下文中获取 ID 并将其作为作业参数传递给下一个作业实例。