0
私のETLプロジェクトの1つにSpring Batch
を使用しています。私が直面している問題は、ライターの段階です。そのためのコードスニペットを以下に示します。最初のサービスコールの間に挿入している間、私はエラーを取得する場合DBクエリーが失敗した場合、例外がSpringバッチのWriterにスローされない
public void write(List<? extends Employee> employeeList) throws Exception {
for (Employee emp : employeeList) {
try {
employeeService.insertEmployeeBasicDetails(emp);
employeeService.insertEmployeeCompensationDetails(emp);
} catch(Exception e) {
log.error(e);
}
}
}
は、それが例外を与えるものではありませんが、それは2回目の呼び出しに移動します。これらの呼び出しがすべて完了すると、エラーがスローされますが、エラーをキャッチするキャッチブロックがなくなり、ジョブの再開に失敗します。
ここに何か不足していますか?
私はデバッガを追加しましたが、catchブロックには届きません。 – shawGate
最初の通話中にどのようなエラーが表示されますか? 'insertEmployeeBasicDetails'がどのようにインプリメントされているかについてもっと詳しく説明していただければ幸いです。 – Bonron
このエラーは、ステップが失敗してもすべて正常に動作することがわかりました:ここではエラーが発生しました原因:java.sql.BatchUpdateException:Can notメソッドをvarcharで呼び出します。 ; SQL []; varcharでメソッドを呼び出せません。ネストされた例外はjava.sql.BatchUpdateExceptionです。varcharのメソッドを呼び出すことはできません。 – shawGate