У меня есть chainedTransactionManager и два разных источника данных. Моя проблема в том, что объект MydataSource1 имеет уникальное нарушение ограничения в базе данных. Mydatasource1.save работает, затем он переходит в mydatasource2.save, а затем выдает HeuristicCompletionException и mydatasource2.save, а не откат. Я хочу откат без каких-либо условий, если возникнут какие-либо исключения
> org.springframework.transaction.HeuristicCompletionException:
> Heuristic completion: outcome state is mixed; nested exception is
> org.springframework.dao.DataIntegrityViolationException: could not
> execute statement; SQL [n/a]; constraint [MYSchema.UNIQUE_NAME]; nested
> exception is org.hibernate.exception.ConstraintViolationException:
> could not execute statement\r\n\tat
> org.springframework.data.transaction.ChainedTransactionManager.commit(ChainedTransactionManager.java:177)\r\n\tat
> org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:619)\r\n\tat
> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:372)\r\n\tat
@Transactional(rollbackFor = {Exception.class,Throwable.class}, isolation = Isolation.READ_COMMITTED, transactionManager = "MychainedTransactionManager", propagation = Propagation.REQUIRED)
public void saveMultipleDBSource()
{
...........
MyDataSource1.Save(Entity1)
MyDataSource2.Save(Entity2)
}