это вовсе не идеальная ситуация, и я боюсь, что вам придется проявить креативность.
Вы не можете реально откатить заявление, которое уже было совершено, но вы можете сделатьчто-то еще.
Итак, ситуация такова: у вас есть 2 вызова, вызов A и вызов B.
вызов A успешно завершается.вызов B завершается неудачно, и вы хотите выполнить откат A.
Я предлагаю выполнить первый коммит в другой таблице.
Создайте копию вашей таблицы в базе данных и зафиксируйте ваши данные там.если B преуспевает, тогда вы вводите другую команду для переноса данных в основную таблицу, где она должна быть.Если произойдет сбой B, вы просто удалите данные из второй таблицы, и ваша основная таблица останется нетронутой.
Это можно сделать с помощью хранимой процедуры, которую вы можете вызвать, присвоить ей идентификатор записи и затемон обновляет основную таблицу, используя строку из второй таблицы.Вы можете легко вызвать хранимую процедуру из структуры сущностей, чтобы ее часть не была проблемой.
Итак, нижняя строка, используйте место временного хранения и перемещайте данные только тогда, когда ваш второй вызов завершится