mongodb - 没有显式事务支持的 MongoOperations 的默认提交行为
问题描述
spring-data-mongodb
如果在代码中不使用@Autowired MongoOperations
且不使用@Transactional
显式MongoTransactionManager
Bean 初始化,则默认提交行为是什么?
我们可以看到 MongoTxnMgr 是否与 @Transaction 支持一起使用,在日志autocommit:false
中可见,然后是显式的;org.mongodb.driver.protocol.command
commitTransaction
但是,当它不使用时,autocommit
同一命令中不存在。在这种情况下,究竟什么时候commit
发生?
我们正在使用 Mongo 4.X 服务器,spring-data-mongodb 2.2.5 RELEASE
解决方案
从客户端的角度来看,MongoDB 4.X 行为使用或不使用显式事务机制在此讨论中得到澄清
摘录 - 对于 MongoDB 4.X
对于用户,您应该考虑默认情况下会自动提交事务之外的任何写入。因此,每个原子写入要么完全存储,要么被丢弃。
推荐阅读
- javascript - 以编程方式禁用 Chrome 自动填充
- c# - c#中的键绑定
- list - Prolog - 所有不同的列表不包括“_”变量
- javascript - 从 php web 到 wordpress 转换,href 只在 URL 中改变
- xampp - 在 XAMPP 中将 PHP 7.0.9 升级到 PHP 7.0.30 后 Apache 未启动
- python - 集合比较如何在 python 中工作?
- sql - postgres 中的动态案例语句
- apache - 为什么 localhost (DocumentRoot) 被阻止在 GoogleDrive、Dropbox 或 Tresorit 上运行?
- font-awesome - Chrome 中的字体加载问题
- php - 在管理面板中按自定义后,Wordpress 自定义 .css 样式消失了