在spring batch jdbccursoritemreader中,datasource不能为null

时间:2018-02-05 02:52:37

标签: spring

我正在尝试将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;

}

我哪里错了?

1 个答案:

答案 0 :(得分:0)

这应该是一个评论,但我还没有足够的声誉来添加一个。此示例来自的类是否已具有dataSource的setter?如果是,则需要将setDataSource(dataSource);更改为super.setDataSource(dataSource);