В коде Spring Batch при написании batchUpdate я добавил обработку исключений, в случае сбоя каких-либо записей я обрабатываю ниже logi c, который отлично работает. Но в моем проекте около 70 писателей, и я хотел создать общий метод c для приведенного ниже кода и во время выполнения передать класс Employee, Department, Student, Stock et c и получить детали обратно.
Как я могу это сделать?
private List<Employee> getFailedRecords(Exception e, List<? extends Employee> items, Map<Integer, String> map){
List<Employee> data = new ArrayList<>();
if (e.getCause() instanceof BatchUpdateException) {
BatchUpdateException be = (BatchUpdateException) e.getCause();
int[] batchRes = be.getUpdateCounts();
if (batchRes != null && batchRes.length > 0) {
for (int index = 0; index < batchRes.length; index++) {
if (batchRes[index] == Statement.EXECUTE_FAILED) {
data.add(items.get(index));
map.put(index, e.getMessage());
}
}
}
}
return data;
}