в методе updateUser: если при вызове одной из макросервисов возникает исключение (например, updateUserContact, updateAccountContact), операция updateUser должна быть откатом.
Как выполнить операцию транзакции для создания, обновления и удалить вручную в Java?
В методе создания при возникновении исключения события удаляю связанные записи.
Но я не знаю, что делать в обновлении и удалять .
если вызов userContactStub.grpcUpdate имеет Exception, я должен откатить userAcount.
Есть ли у кого-нибудь предложения по откату транзакции в обновлении?
Я использую jpa, grp c (Для подключения микросервисов), springBoot. каждая микрослужба имеет источник данных.
//updateUser
AdminUser adminUser = findById();
adminUser.setFirstName(adminUserModel.getFirstName());
adminUser.setLastName(adminUserModel.getLastName());
adminUser.setPassword(PasswordEncoderGenerator.generate(adminUserModel.getPassword()));
adminUser.setUsername(adminUserModel.getUsername());
adminUser.setDateOfBirth(CalendarTools.getDateFromCustomDate(adminUserModel.getDateOfBirth()));
adminUser.setGender(etcItemService.findByIdAndCheckEntity(adminUserModel.getGender_id(), GenderEnum.class,null,true));
adminUser = adminUserRepository.save(adminUser);
//update userAcount For Admin
//call grpcUpdate
this.userAcountStub.grpcUpdate(createRequestModel);
//update UserContact For Admin
//call grpcUpdate
this.userContactStub.grpcUpdate(createRequestModel);
adminUserModel.setId(adminUser.getId());
return adminUserModel;