Java 是否可以使用Spring在两个不同的数据库(MongoDB和MySQL)中创建包含插入的事务?

Java 是否可以使用Spring在两个不同的数据库(MongoDB和MySQL)中创建包含插入的事务?,java,mysql,spring,mongodb,spring-aop,Java,Mysql,Spring,Mongodb,Spring Aop,这是我的塞纳里奥: 我有一个spring集成流程,其中我在MongoDB和MySQL数据库上进行插入:我将数据存储到Mongo中,进行一些处理,然后使用spring数据将数据插入MySQL(两个数据库的插入不在同一类中) 所有的repo、服务、aop事务和一切都已实现,我需要的是在将数据存储到Mongo之前启动事务,并在完成mysql插入后结束事务,这样,如果出现任何问题,mysql和Mongo插入都将回滚 希望我能清楚地解释我的问题!提前感谢事务是数据库更改的内部列表,因此,不,您不能在两个数

这是我的塞纳里奥:

我有一个spring集成流程,其中我在MongoDB和MySQL数据库上进行插入:我将数据存储到Mongo中,进行一些处理,然后使用spring数据将数据插入MySQL(两个数据库的插入不在同一类中)

所有的repo、服务、aop事务和一切都已实现,我需要的是在将数据存储到Mongo之前启动事务,并在完成mysql插入后结束事务,这样,如果出现任何问题,mysql和Mongo插入都将回滚


希望我能清楚地解释我的问题!提前感谢

事务是数据库更改的内部列表,因此,不,您不能在两个数据库之间有一个事务

每个数据库需要1个事务,如果成功,可以按顺序提交或单独回滚

苏多:


事务是数据库更改的内部列表,因此,不可以跨2个数据库有1个事务。每个数据库需要1个事务,如果成功,您可以按顺序提交或单独回滚谢谢@MikeT,因此我需要一种方法来记忆mongo存储的数据,然后在插入MySQL数据库时删除它们,以防出现问题。这取决于您使用的mongo驱动程序是否支持事务这可能会有点复杂由于MongoDB没有事务。@Philipp它有两个阶段提交,可以模拟提交回滚行为,请参阅
Create MySQL tansaction
Change MySQL 
if Successful
    Create Mongo Transaction
    change Mongo 
    if Successful
       Commit Mongo changes
       Commit MySQL changes
    else 
       rollback Mongo changes
       rollback MySQL changes
else
    rollback MySQL changes