-1
私は春の新機能です。同じ複数のSQL問合せを実行し、すべての問合せに対して同じPOJOを戻す必要があるユースケースがあります。私は1つのアイテムリーダーを作成し、各ステップでクエリを変更したいと思います。これを行う方法はありますか?スプリングブートスプリングバッチ:ItemReaderにクエリを動的に設定する方法
私は春の新機能です。同じ複数のSQL問合せを実行し、すべての問合せに対して同じPOJOを戻す必要があるユースケースがあります。私は1つのアイテムリーダーを作成し、各ステップでクエリを変更したいと思います。これを行う方法はありますか?スプリングブートスプリングバッチ:ItemReaderにクエリを動的に設定する方法
あなたがリーダーに@StepScope
を追加することにより、遅延バインディング春のバッチを使用することができます
サンプルコード
@StepScope
@Bean
public ItemReader<Pojo> myReader() {
JdbcCursorItemReader<Pojo> reader = new JdbcCursorItemReader<>();
reader.setDataSource(basicDataSource);
//You can inject sql as per you need
//Some expamles
//using #{jobParameters['']}
//using {jobExecutionContext['input.file.name']}"
//using #{stepExecutionContext['input.file.name']}"
reader.setSql("Your-SQL");
reader.setRowMapper(new MyMapper());
return reader;
}
チェック部5.4 https://docs.spring.io/spring-batch/reference/html/configureStep.html
あなたは、各ステップで**によって何を意味しています** ?それは多段階の仕事ですか?私の意見では、カスタムリーダーを書くつもりなら、それをあなたが望むようにコーディングすることができます。 API提供の読者では不可能かもしれません。 –