Spring @Transactional with a transaction across multiple data sources
I’ve solved this problem using ChainedTransactionManager – http://docs.spring.io/spring-data/commons/docs/1.6.2.RELEASE/api/org/springframework/data/transaction/ChainedTransactionManager.html Spring Boot Configuration: @Bean(name = “chainedTransactionManager”) public ChainedTransactionManager transactionManager(@Qualifier(“primaryDs”) PlatformTransactionManager ds1, @Qualifier(“secondaryDs”) PlatformTransactionManager ds2) { return new ChainedTransactionManager(ds1, ds2); } And then you can use it as follows: @Transactional(value=”chainedTransactionManager”) public void updateDb01() { Entity01 entity01 = repository01.findOne(1234); entity01.setName(“Name”); repository01.save(entity01); //Calling method to update DB02 updateDb02(); } public … Read more