我正在尝试将hashmap从一个步骤传递到另一个步骤,并使用该地图创建查询并在下一步执行。我在获取数据源时不能为null。
下面是我的代码,我试图检索值并运行查询。我还没有检索并动态传递它。但我会动态地替换这个查询。
@Autowired
DataSource dataSource;
@Override
public void afterPropertiesSet() throws Exception{
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
@SuppressWarnings("unchecked")
List<HashMap<String,String>> mapList = (List<HashMap<String, String>>) jobContext.get("mapList");
System.out.println("size of map received:::::::"+ mapList.size());
setSql("select count(*) as countValue from table where id=578");
setRowMapper(new dbMapper());
setDataSource(dataSource);
super.afterPropertiesSet();
}
@BeforeStep
public void saveStepExecution(final StepExecution stepExecution) {
this.stepExecution = stepExecution;
}
我哪里错了?
答案 0 :(得分:0)
这应该是一个评论,但我还没有足够的声誉来添加一个。此示例来自的类是否已具有dataSource的setter?如果是,则需要将setDataSource(dataSource);
更改为super.setDataSource(dataSource);
。