私はspringバッチで消費するcsvファイルを持っています。列ヘッダー(名前)は、顧客によって異なる場合があります。 FlatFileItemReaderを使用してデータを読み込むとき、最初の行(ヘッダー)列名にトークン名を設定するにはどうすればよいですか?私はフローを設定するためにJava Configurationを使用しています。スプリングバッチ:CSVファイルの最初の行の見出し(ヘッダー)をファイルリーダーのトークン名に設定する方法
は、任意のコメント/提案を感謝
私はspringバッチで消費するcsvファイルを持っています。列ヘッダー(名前)は、顧客によって異なる場合があります。 FlatFileItemReaderを使用してデータを読み込むとき、最初の行(ヘッダー)列名にトークン名を設定するにはどうすればよいですか?私はフローを設定するためにJava Configurationを使用しています。スプリングバッチ:CSVファイルの最初の行の見出し(ヘッダー)をファイルリーダーのトークン名に設定する方法
は、任意のコメント/提案を感謝
一つの解決策は、FlatFileItemReader::setLinesToSkip
方法でCSVファイルの最初の行を破棄することができます。あなたは以下のように使用することができます
flatFileItemReader.setLinesToSkip(1);
:次のような
<bean id="flatFileItemReader"
class="org.springframework.batch.item.file.FlatFileItemReader">
<!-- linesToSkip => The number of lines to skip at the beginning of the
file. This feature is particularly useful to handle file headers. -->
<property name="linesToSkip" value="1" />
をあなたはLineToSkipプロパティを設定する必要があります。
@Component
@JobScope
public class CsvToDbItemReader extends FlatFileItemReader<BillDTO> {
public CsvToDbItemReader(@Value("#{jobParameters}") Map jobParameters)
{
String uploadDate = (String) jobParameters.get("uploadDate");
this.setResource(new FileSystemResource(getFileName(uploadDate)));
this.setLinesToSkip(1); //set header line
LineMapper<BillDTO> lineMapper = createBillLineMapper();
this.setLineMapper(lineMapper);
}
}
あなたは、あなたの答えを編集し、あなたの関連部分を追加してくださいすることができJava Config? –