我正在使用Spring批处理2.1.9.RELEASE
我需要配置一个作业步骤,它从Mysql DB读取数据,处理它并写回Mysql。我想以大块的方式来做。
我考虑过使用JdbcCursorItemReader
但SQL很复杂。我需要从其他三个表中获取数据,以创建在读者中使用的实际SQL。
但是,如果我使用customItemReader
和JdbcTemplate
/ NamedParameterJdbcTemplate
,我怎样才能确保步骤处理数据块中的数据?我没有使用JPA / DAO。
非常感谢,
答案 0 :(得分:1)
在Spring中,批处理数据通常作为块处理;简单的方法是在步骤定义中声明commit-interval
;见Configuring a step。
定义自定义块策略的另一种方法是实现自己的CompletionPolicy
。
要回答您的问题,请使用Driving Query Based ItemReaders从主表中读取并构建复杂对象(从其他表中读取),定义commit-interval
并使用标准读取/处理/写入步骤模式。 / p>
我希望我很清楚,英语不是我的语言。