Транзакция RollBack весной MVC для списка - PullRequest
0 голосов
/ 21 января 2020

У меня есть список объектов Entity. Я вызываю метод сохранения класса обслуживания из контроллера. Класс обслуживания помечается аннотацией @Transactional. Поскольку метод save выполняет некоторые проверки внутри, скажем, если у моего 3-го объекта списка возникла проблема с проверкой, класс обслуживания выдаст исключение, которое будет откатано, но мои предыдущие 2 объекта уже сохранены. Я хочу полностью выполнить откат, если какой-либо объект списка имеет проблему с проверкой. Пожалуйста, предложите, спасибо заранее. Я использую JDBCTemplate, без ORM.

1 Ответ

0 голосов
/ 21 января 2020

Почему бы не сохранить все объекты / сущности в одном вызове, вместо того, чтобы вызывать сохранение для каждого объекта в отдельной транзакции,

@Transactional
public List<Entity> saveAll(final List<Entity> entities) {
    return yourRepository.saveAll(entities);
}

Это обеспечит автоматическое сохранение всех сущностей (все сохранить или ни одного) и будет вернул все сохраненные (управляемые) объекты.

...