Spring 批量 - 根据条件更新不同的表

Spring Batch - Updating different tables based on conditions

Spring批量

不确定如何实现,但假设我们有条件 A/B:

事务应该在单个事务中完成,这意味着在条件 A 下,我必须完成所有 3 tables 的更新 - D、E、F .如果任何 table 失败,则不应部分完成此交易。

正在考虑分类器 + 复合项目编写器,但不确定它是否是单个事务。

只有当项目 should/could 被分类时,使用分类器才有意义。因此,如果您的条件取决于项目类型(即 类),那么使用分类器 + 复合编写器是可行的方法。如果您使用复合编写器,事务将围绕复合编写器进行,并为您的 insert/update/delete 语句提供全有或全无语义。你可以在这里找到一个完整的例子:

如果您的条件不依赖于项目类型(例如作业参数或系统 属性),那么您可以为此创建一个自定义编写器(该编写器可以委托给两个复合编写器和根据条件调用合适的)。