创建一个ItemReader类,从子项读取器中收集数据

时间:2017-01-25 15:14:51

标签: spring spring-data spring-integration spring-batch

目前,我有多个项目阅读器用于单个数据库查询。我想将所有这些信息都放到一个Object中。是否有一种ItemReader可以为我做这个?我希望处理器和写入器在读取器作为单个对象读入后处理该对象。所以基本上我需要从一组ItemReaders创建一个对象,然后从那一点开始使用它作为我唯一的处理和写入数据源。 需要注意的一点是,我无法更改现有的ItemReaders,因为它是项目的一个重要部分。

1 个答案:

答案 0 :(得分:1)

即使你不能改变现有的编码,我也会避免使用多个读者,而是在一个全新的读者中使用像Hibernate这样的ORM框架?

或者,使用JdbcCursorItemReader创建一个新的阅读器,然后将3个(或更多)表连接在一起,用于驱动光标并将结果集映射到自定义对象。如果连接将导致光标每个对象返回多行,我首先会建议返回查看Hibernate。如果Hibernate不是一个选项,你可以扩展SingleItemPeekableItemReader来迭代光标,直到你完全构建你的对象。

Example using SingleItemPeekableItemReader