【发布时间】:2019-04-19 19:07:36
【问题描述】:
我有 spring 批处理程序,它从数据库中读取数据并对其进行处理,然后将其插入(使用 ItemWriter)到数据库中的其他表中。这里我对 ItemReader、ItemProcessor 和 ItemWriter 使用了一堆 SQL 查询。
我的要求是将所有这些查询存储在具有参数和值格式的表中,并通过单个 DB 调用检索它并将其传递给 ItemReader 或 ItemProcessor 或 ItemrWriter。因此,如果将来查询有任何变化,我们最终将只进行数据库更新,而代码将保持不变。
我尝试在 beforeJob 部分执行,但我遇到错误说“java.lang.IllegalArgumentException:必须提供 SQL 查询”。但是我可以通过在 ItemReader 方法中进行数据库调用来成功地做到这一点。我试图避免这种方法,因为我需要为每个 ItemReader、ItemProcessor 和 ItemWriter 进行 db 调用。请告诉我如何实现这一目标?
【问题讨论】:
标签: spring-batch