Я работаю над довольно простым RESTful-сервисом на основе SpringBoot.Я использую Ebean и SpringData.Все мои REST-методы аннотированы с помощью @Transactional:
@Transactional
@PostMapping
public Entity createEntity(...) {
// some code
}
Проблема, с которой я сталкиваюсь, заключается в том, что если есть проблема с сетью, но этот метод выполняется без исключения, транзакция все равно будет зафиксирована.Например, клиент может отправить данные, мой код создает запись, но затем сервер не может отправить ответ клиенту.В этом случае я бы хотел, чтобы транзакция откатилась, но я не нашел способа сделать это.
Возможно ли вообще откатить транзакцию в этом случае?Может быть, есть ограничение платформы Spring, которое я пропускаю.
Спасибо
РЕДАКТИРОВАТЬ: Чтобы ответить на ответы ниже и задать вопрос далее: достаточно просто откатить транзакцию.Самое сложное - запустить любой код в ответ на сбой сети.Я надеялся, что смогу настроить Spring, чтобы сделать это для меня.Например, «дождаться отправки последнего байта, а затем откатить или зафиксировать транзакцию».Мой текущий код будет фиксировать транзакцию, как только завершится метод createEntity ().