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

标签 java mysql spring mongodb spring-aop

这是我的经验:

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

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

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

最佳答案

事务是对数据库更改的内部列表,因此,不可以,您不能在 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

关于java - 是否可以使用 Spring 在两个不同的数据库(MongoDB 和 MySQL)中进行包含插入的事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548299/

相关文章:

mysql - 几个异步函数后的一个响应

java - Spring 4.3.7 抛出 java.lang.NoClassDefFoundError : com/fasterxml/jackson/core/util/DefaultIndenter

spring - 如何划分两个HQL计数结果?

java - 如何使用 sling servlet 为现有节点创建新属性?

java - 是否可以从 application.properties 禁用 Spring Boot 的自动异常处理

java - 我可以将 Spannable 转换为 Android 中的字符串以加载 ExpandableListView 吗?

java - jar 文件的 spring boot 父级

java - JPA 查询异常意外(

mysql - 无法读取未定义 Node JS 服务器的属性 'length'

php - 使用 jquery 在 URL 中传递哈希并进行 mysql 查询