ファイルを読み取り、ファイルを処理してDBに保存するバッチステップがあります。しかし、それは全負荷であるため、新しいレコードを挿入する前に DB からテーブルを削除する必要があります。
私の質問は、Spring バッチ (リーダー、プロセッサ、ライター) で既存のテーブルを削除するコードを記述するのに最適な場所はどこかということです。以下に複数のシナリオを示します。
open()
リーダー クラスのメソッドでこれItemReader<>
を行います。フラグを作成し、一度設定し、そのフラグに基づいてプロセッサ クラスのテーブルを削除します。
別の一時テーブルを作成し、すべてのレコードをファイルからこのテーブルにコピーしてから、「@AfterStep」メソッドで、実際のテーブルからすべてのレコードを削除し、すべてのレコードを一時テーブルからこのテーブルに移動します。
の前に一度だけ呼び出されるメソッドはありますItemprocessor
か?フラグを使用する以外の方法はありますか? 提案してください