我正在寻找一种使用 Spring Boot 管理多个事务的机制。这是代码:
class Controller {
@Autowired
Service service;
class Service {
@ Transactional
public void execute () {
// 1. select process using Repository
// 2. Update process using Repository
// 3. select process using Repository
如果第3步出现异常,则需要回滚第2步的更新。到目前为止,我一直在处理一个数据库,因此与上述没有问题。但是,不同的数据库用于选择和更新。(DataSource不同)对于每个DataSource,你可以通过拆分来处理功能,但是那样的话对现有逻辑的修改会很大。如上所述,有一种方法可以让 Spring 在执行所有处理的同时管理事务?
目前正在研究是否可以通过以下方法实现,但如果有更聪明的方法,请告诉我会有所帮助。1.用自己的注解(@Transactional2)打开多个Connections 2.Interceptor发现Repository的save*函数已经执行,切换DataSource
谢谢你