Я использую Spring Boot, и у меня мало опыта по транзакциям ...
@Service
@Transactional
class FundTransferService {
public void doSomeFunds(){
if(realPaymentGateway()){
//then do db call, to update User Transaction details, WHAT IF SERVER GOES DOWN HERE OR ANY EXCEPTION??
}
}
public boolean realPaymentGateway(){
//Using Braintree to transfer Funds
}
}
Выше происходят 2 вещи: paymentGateway (что является вызовом покоя), и если Успех, то только обновление БД с подробностями транзакции пользователя.
Я хочу, чтобы было больше 2 вещей, которые должны произойти. Атоми c, Я имею в виду либо (Отдых, и БД) shud Success, либо откат всего ..
Моя проблема:
Q1) При обновлении сведений о БД из-за какого-либо исключения или из-за отказа сервера может произойти откат только для содержимого БД, но не для RESTCALL ..
Q2) Должен ли я сначала обновить DB, а затем go для PaymentGateway для перевода средств или возврата должен быть правильным? Пожалуйста, предложите мне ..
Надеюсь, вы понимаете мой запрос, так каково решение вышеуказанной проблемы?