首页 > 解决方案 > 使用 SpringBoot 的 MongoDb 事务

问题描述

我正在尝试使用 SpringBoot 在 MongoDb 上实现事务。下面是代码片段:

  1. 配置类:
@Bean
@Autowired
@ConditionalOnExpression("'${mongo.transactions}'=='enabled'")
@Profile("enableTransactions")
MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
    return new MongoTransactionManager(dbFactory);
}
  1. 逻辑:
@Transactional
    public String checkTransactions(RequestDto requestDto) throw Exception{
        requestRepository.save(requestDto);
        throw new Exception();
        return "DONE";
    }

但这不起作用,记录会保留在数据库中。

但是,当我使用 client.session 和 MongoCollection 而不是 spring 的注释时,一切都按预期工作。

知道我在哪里遗漏了什么吗?

注意:Mongo 的版本是 4.4,Spring 的版本是 2.2.5

标签: javamongodbspring-boottransactionsspring-transactions

解决方案


推荐阅读