Spring Batch阅读器中的读取计数小于源计数

时间:2019-05-08 13:23:29

标签: spring-boot spring-batch

我正在通过Spring Boot使用Spring批处理。 从源读取表并写入目标。 我正在填充三个表,其中一个表的读取计数小于实际数。

说在源表中有2656274行,但是我得到的读取计数为readCount = 2577203,writeCount = 2577203

其他具有8条记录的表缺少记录,有1万条记录可以正常工作

public class DxDatabaseItemReader extends JdbcCursorItemReader<DxDataRead> {

    public  DxDatabaseItemReader(DxJobContext jobCntx) {
        synchronized (this){
        System.err.print("Into DxDatabaseItemReader");
        String[] dsParam =jobCntx.srcDbName.split("#");
        this.setDataSource(createOracleDataSource(dsParam[1],dsParam[2],dsParam[3]));
        this.setSql(createFetchQuery(jobCntx.srcFieldNames,jobCntx.srcTableName));//"SELECT SOEID, FST_NAM, LST_NAM FROM REF_PRSNL_MSTR");
        this.setFetchSize(0);
        this.setRowMapper((ResultSet rs, int rowNum) -> {
            Map<String, String> fieldNameMap = new HashMap<>();
            for(int i=0;i<jobCntx.srcFieldNames.size();i++)
                fieldNameMap.put(getSrcFieldName(jobCntx.srcFieldNames, i), rs.getString(jobCntx.srcFieldNames.get(i)));
            DxDataRead dataRead = new DxDataRead();
            dataRead.setFieldNameMap(fieldNameMap);
            return dataRead; 

            });
        }
    }

预期:它将读取所有数据并写入

0 个答案:

没有答案