2017-07-26 7 views
-1

私は春の新機能です。同じ複数のSQL問合せを実行し、すべての問合せに対して同じPOJOを戻す必要があるユースケースがあります。私は1つのアイテムリーダーを作成し、各ステップでクエリを変更したいと思います。これを行う方法はありますか?スプリングブートスプリングバッチ:ItemReaderにクエリを動的に設定する方法

+0

あなたは、各ステップで**によって何を意味しています** ?それは多段階の仕事ですか?私の意見では、カスタムリーダーを書くつもりなら、それをあなたが望むようにコーディングすることができます。 API提供の読者では不可能かもしれません。 –

答えて

0

あなたがリーダーに@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

関連する問題