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

时间:2017-06-14 14:58:28

标签: java mysql spring mongodb spring-aop

这是我的晚会:

我有一个spring intergation流程,我在MongoDB和MySQL数据库中进行插入:我将数据存储到Mongo中,进行一些处理,然后使用Spring Data将数据插入MySQL(两个数据库的插入都不在同一课程)

所有repos,services,aop transaction和一切都已实现,我需要的是一种在将数据存储到Mongo之前启动事务并在完成mysql插入后结束它的方法,这样如果发生任何问题,MySQL和Mongo插入将回滚。

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

1 个答案:

答案 0 :(得分:1)

事务是数据库更改的内部列表,因此,您不能在2个数据库中拥有1个事务。

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

须藤:

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