#250 Частичный rollback при параллельной обработке

Компании:
Домклик
Темы:
SpringМногопоточностьТранзакцииКод ревью

В process передается больше 100 значений. При обработке последнего значения в списке возникает ошибка. Какие изменения попадут в БД?

@Service
public class Processor {

    @Transactional
    public void process(List<String> items) {
        if (CollectionUtils.isEmpty(items)) {
            return;
        }

        items.parallelStream()
                .forEach(this::processItem);
    }

    private void processItem(String item) {
        // insert/update item entity in DB
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти