【发布时间】:2015-04-28 15:34:41
【问题描述】:
我是 Spring Batch 的新手。我需要运行一个夜间批处理:
- 从表 A 中读取记录,
- 对于表 A 中的每条记录,
- 运行大约 10 条业务规则,其逻辑涉及从数据库中读取数据(在每个规则中)和
- 在每个规则中写入表B,规则的结果
我还需要一些方法来按需运行表 A 中较小的记录子集的规则。Spring Batch 是一个不错的选择吗?我可以将数据访问逻辑和业务逻辑放在ItemProcessor 中吗?
非常感谢任何帮助。
这是我所做的:
- 创建了一个扩展
JdbcCursorItemReader的DiscountReader,它根据日期和其他条件获取折扣计划_返回 DiscountObj 类型的对象 - 创建了一个实现
ItemProcessor的SalesProcessor,其中我有 (a)SalesReader应该读取一组不同的表以获取与当前 DiscountObj 中的参数匹配的销售记录 (b) SalesWriter 应该将SalesReader获取的数据写入另一个表。
SalesReader 执行的查询参数是动态的,因为它必须从当前的DiscountObj 中提取。如何为SalesReader 设置PreparedStatement 的值?我尝试使用PreparedStatementSetter,但是,查询甚至在设置值之前就被执行了。
非常感谢任何帮助/指针。
【问题讨论】:
-
我们开始在这里进行对话。你能把更新分成一个新问题吗?
标签: spring spring-batch