java - 无法在多文档事务中创建命名空间(MongoDB 4.0、Spring Data 2.1.0、Spring Boot)
问题描述
这个关于 Spring boot、Mongo4.0、Spring-data 应用程序的问题。
我已从 MongoDB 3.6.x 升级到 MongoDB 4.0,将 Spring data 2.0.x 升级到 Spring-data 2.1.0,以便在将数据插入多个文档时进行事务管理。但是在这里,我在创建数据库、集合并将文档插入集合时遇到了这个问题。
问题
Cannot create namespace sampledb_200.demo in multi-document transaction
这里sampldb_200是数据库名称,demo是集合名称。
在早期的 mongodb3.6.X 版本,Spring Data 2.0.x 中,即使数据库和集合不存在,我也能够同时进行数据库、集合创建、文档插入。
使用 Spring Data 2.1.0、MongoDB 4.0,数据库、集合创建和插入不会发生在一个函数和数据库下,集合创建要显式完成。
解决方案
Spring 正在接受 MongoDB 4.0 附带的一项新功能,该功能支持多文档事务。该功能仅适用于现有集合,即多文档事务不能包含会导致创建新集合的插入操作。您应该事先创建您的收藏以使用此功能。
推荐阅读
- reactjs - 使用 React `useCallback` 钩子的依赖项作为回调的参数是否更高效?
- android - 如何在 Android 设备上调试 Delphi 应用程序?
- angular - ngForm 或 [formGroup] 在 formly 包装器中是未知的
- javascript - 行和列布局中的 iframe 显示问题
- java - 为什么我的第一个请求需要很长时间才能通过 zuul 网关得到响应
- swift - 镜像 RTL 语言的 ImageView?
- python - Pptx:如何将图表轴转换为对数?
- automated-tests - RobotFramework AutoItLibrary.Run 测试用例通过,但没有显示窗口
- python - Twosum 问题:为什么代码 A 的运行速度比代码 B 快得多?
- python - created_by 不使用 ManyToManyField django