Откат внешнего метода дважды после возврата из внутренней транзакции отката - PullRequest
0 голосов
/ 25 декабря 2018

В моем весеннем загрузочном приложении у меня есть метод в классе обслуживания, который имеет две транзакции из двух баз данных.Мой внутренний метод выполняет откат правильно, и он вызывает исключение для внешнего метода. Я заметил, что в моей консоли он непрерывно регистрирует два отката операторов после отката внутренней транзакции. Я не могу придумать причину, по которой мой внешний метод откатывается дваждыпосле отлова исключения, сгенерированного внутренним методом.Необязательно: при отладке я заметил, что после второго отката существует еще две синхронизации (включая внутренний откат)

Наружный и внутренний методы находятся в двух разных аннотированных классах @Service. Ниже приведен пример кода.

@Transactional(value = "db1",rollbackFor = Exception.class)
public String outerMethod(){
  try{

    dao1.updateOne();

    service2.innerMethod();
  }catch(Exception e){
     throw new CustomException();
  }   
}

Вот внутренний метод обслуживания

@Transactional(value = "db2",rollbackFor = Exception.class)
public String innerMethod(){
  dao2.updateTwo();
  throw new Exception();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...