Spring Boot @Transactional Attribute с несколькими источниками данных - PullRequest
0 голосов
/ 09 марта 2020

Привет, у меня есть два разных метода, и они используют разные источники данных и менеджер транзакций. Я использую атрибут @Transactional и Что я хочу, если мой второй метод выдает исключение, чем метод myfirst, делает свой откат. Но он не работает, первый метод не может откат. Что мне не хватает?

  @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED, transactionManager = myTransactionManager", propagation = Propagation.REQUIRED)
    public void saveTest(TblTest testEntity)  {

  mySecondDBSource.saveTest2(testEntity);(use MyTransactionManager2) //Do job

  testTableRepository.save(testEntity); (Use myTransactionManager) //throws Exception

}




//in mySecondDBSource class there is another method
      @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED, transactionManager = "MyTransactionManager2", propagation = Propagation.REQUIRED)
        public void saveTest2(TblTest2 testEntity) {

            testTableRepository2.save(testEntity);

        }

1 Ответ

2 голосов
/ 10 марта 2020

Spring Data предлагает способ обработки так называемых связанных / распределенных транзакций через ChainedTransactionManager .

См. Spring-транзакция-с-транзакцией -across-множественные источники данных .

Вот также простое руководство по medium .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...