Spring Batch中JdbcCursorItemReader无法查询SQL数据库数据,但JdbcTemplate可正常获取的问题求助
Spring Batch中JdbcCursorItemReader无法查询SQL数据库数据,但JdbcTemplate可正常获取的问题求助
大家好,我最近碰到个Spring Batch的棘手问题,想来请教下各位:
我用JdbcCursorItemReader从SQL数据库查数据的时候,它完全没进入RowMapper的mapRow方法,而且控制台连半条错误日志都没输出!但诡异的是,用一模一样的查询语句,JdbcTemplate却能顺顺利利从数据库里拿到数据。
我的配置类代码大概是这样的(可能有点截断):
@EnableBatchProcessing @Configuration public class config { @Autowired DataSource datasource; @Bean public Job job(JobRepository jobRepository, Step step) { return new JobBuilder("employeeData", jobRepository) // 这里的代码好像没写完 } }
我现在一头雾水,有没有小伙伴能给我一些排查方向?比如:
- 是不是
JdbcCursorItemReader的配置漏了什么?比如有没有正确绑定RowMapper,或者SQL语句有没有正确设置? - Job和Step的配置是不是没把这个reader关联上?会不会Step根本没触发这个reader执行查询?
- 事务方面会不会有问题?
JdbcCursorItemReader依赖事务,是不是Spring Batch的事务管理器配置不对? - 要不要开更详细的日志?比如把Spring Batch和JDBC的日志级别调到DEBUG,看看有没有隐性的异常被吞了?
- 会不会是两个组件用的数据源不一样?虽然我@Autowired了DataSource,但会不会存在多个DataSource Bean导致两者用的不是同一个库?
内容来源于stack exchange
相关产品推荐
相关产品推荐

