首页 > 解决方案 > 无法在多文档事务中创建命名空间(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,数据库、集合创建和插入不会发生在一个函数和数据库下,集合创建要显式完成。

标签: javamongodbspring-bootspring-dataspring-data-mongodb

解决方案


Spring 正在接受 MongoDB 4.0 附带的一项新功能,该功能支持多文档事务。该功能仅适用于现有集合,即多文档事务不能包含会导致创建新集合的插入操作。您应该事先创建您的收藏以使用此功能。


推荐阅读