Spring batch 正在将OneToManyResultsTextRactor/ResultsTextRactor与Spring批处理一起使用';JdbcCursorItemReader是否可能?

Spring batch 正在将OneToManyResultsTextRactor/ResultsTextRactor与Spring批处理一起使用';JdbcCursorItemReader是否可能?,spring-batch,spring-jdbc,Spring Batch,Spring Jdbc,我只是想知道是使用OneToManyResultSetExtractor还是将ResultSetExtractor与Spring Batch的JdbcCursorItemReader一起使用 我遇到的问题是,预期的RowMapper每行只处理一个对象,并且我有一个join-sql查询,每个对象返回许多行 开箱即用,它不支持使用ResultSetExtractor。这样做的原因是包装ItemReader是有状态的,需要能够跟踪消耗了多少行(否则它不会知道)。Spring批处理中典型的功能类型是通过

我只是想知道是使用
OneToManyResultSetExtractor
还是将
ResultSetExtractor
与Spring Batch的
JdbcCursorItemReader一起使用


我遇到的问题是,预期的
RowMapper
每行只处理一个对象,并且我有一个join-sql查询,每个对象返回许多行

开箱即用,它不支持使用
ResultSetExtractor
。这样做的原因是包装
ItemReader
是有状态的,需要能够跟踪消耗了多少行(否则它不会知道)。Spring批处理中典型的功能类型是通过使用
ItemProcessor
来丰富对象。您的
ItemReader
将返回一对多,然后
ItemProcessor
将用多来丰富对象。这是批处理中的一种常见模式,称为驱动查询模式。您可以在此处的Spring批处理文档中了解更多信息:

也就是说,您还可以使用自己的实现来包装
JdbcCursorItemReader
,该实现为您执行聚合逻辑