java - 使用 SpringBoot 的 MongoDb 事务
问题描述
我正在尝试使用 SpringBoot 在 MongoDb 上实现事务。下面是代码片段:
- 配置类:
@Bean
@Autowired
@ConditionalOnExpression("'${mongo.transactions}'=='enabled'")
@Profile("enableTransactions")
MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}
- 逻辑:
@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
解决方案
推荐阅读
- php - 有没有办法在模式中插入 $name
- sql - Joins on multiple tables in Postgresql
- javascript - 如何在javascript中调试视频暂停
- python - 如何使用openCV从文件夹中有效地加载许多图像
- python - 在 Python 中使用 OpenCV 编写 HDR 图像的正确方法是什么?
- java - 难以理解何时执行关闭挂钩以及如何终止 ExecutorService
- php - 如何在 Laravel 中制作简单的动态下拉列表?
- python - Scraping web site
- matlab - 当目标函数达到一定值时停止 fminsearch
- windows-10 - 通过 Visual Studio 2019 编写的程序能否在所有 Windows 10 版本上兼容,或者仅在最新版本的 Windows 10 上兼容?