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
,该实现为您执行聚合逻辑