2016-09-08 4 views
0

私は自分のプロジェクトにSpringバッチソリューションを使用しています。私はファイルからIDを読み取る必要がある状況があります。IDの場合、データベースからデータを取り出し、処理して出力ファイルに書き込む必要があります。バグバッチ - ファイルからのIDを読み取るIDのデータを取得

現在、私はファイルからデータを読み込むためにFlatFileItemReaderを使用し、次にそれらを収集して1000個のカウントごとに(in節には1000個の制限があります)それらのIDのデータを収集するためにデータベースにヒットし、出力を書き込むライター。

しかし、私は何とかこれを行うより良い方法があると感じています。私が当てているDBにアクセスできない場合、これらのIDを一時テーブルに格納して、出力を取得することができます。しかし、私はそれをすることはできません。とにかく読者をつなぐことはありますか?

答えて

0

私は、ステップ#1の出力をステップ#2に渡すか、またはステップ#2の読者のロジックを単純化する場合は、ステップ#1の出力を中間ストレージに保存して、ジョブを2ステップで設計する必要があります。

STEP#1: - >プロセッサFlatFileItemReaderから成ります。

ステップ#2: DBリーダー - >プロセッサ - >あなたの問題の説明で行くライター

、あなたが一時的/中間テーブルへの書き込みをSTEP#1でライターを追加することができそうです。

STEP#2にプロセッサーは必要ありません。

STEP#1のデータはExecutionContextSee this。またrelated question

、のような文章、を使用して#2をステップに渡すことができますしかし、私ははあなたが理由の詳細説明を追加しない限り、有用ではないことを行うことはできませんか?

+0

ご返信ありがとうございます。 「しかし私はできません」というのは、そのデータベースへの書き込みアクセス権がないか、DB内にオブジェクトを作成する予定がないということです。プロジェクトの制限内にないからです。だから、他のソリューションではなく、中間テーブルを作成することをお勧めします。 – Kenneth

+0

だから問題は何ですか?おそらく、ステップ1からステップ2へデータをそのまま持続させずに直接渡す必要があります。私はそのロジックを実装していませんが、それらのリンクで説明されているようにデータの受け渡しが可能であると推測します。 –

関連する問題