Есть ли в весенней партии функция для помещения поля в произвольную позицию файла? - PullRequest
1 голос
/ 27 января 2020

Я хочу создать 2 шага в одном задании, первый шаг должен извлечь данные из базы данных и поместить их в файл, этот шаг сделан правильно.

Второй шаг должен выполнить файл, обработанный первый шаг и обработать его для вывода нового файла

Мой вопрос: как я могу расположить свои новые поля и данные в указанном c месте / позиции в файле

Могу ли я использовать lineAggregator для обработки моих данных и как?

Пример: вывод шаг 1: столбец1, столбец2, столбец3 data1, data2, data3 data1, data2, data3 data1, data2, data3 data1, data2, data3

выходной шаг 2: и цель column1, column2 newColumn , колонка3 data1, data2 NewData , data3 data1, data2 NewData , data3 data1, data2 NewData , data3 data1, data2 NewData , data3

1 Ответ

2 голосов
/ 27 января 2020

это должно быть похоже на запись в любой новый файл. На шаге 2 процессор вычислит значение newData, заполнит новый объект POJO и запишет его в файл

 BeanWrapperFieldExtractor<CustomerCredit> fieldExtractor = new BeanWrapperFieldExtractor<>();
        fieldExtractor.setNames(new String[] {"data1", "data2","newData","data3"});
        fieldExtractor.afterPropertiesSet();

        DelimitedLineAggregator<CustomerCredit> lineAggregator = new DelimitedLineAggregator<>();
        lineAggregator.setDelimiter(",");
        lineAggregator.setFieldExtractor(fieldExtractor);

        return new FlatFileItemWriterBuilder<CustomerCredit>()
                    .name("customerCreditWriter")
                    .resource(outputResource)
                    .lineAggregator(lineAggregator)
                    .build();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...