Невозможно создать пространство имен в многодокументной транзакции (MongoDB 4.0, Spring Data 2.1.0, Spring Boot) - PullRequest
0 голосов
/ 01 октября 2018

Этот вопрос относится к загрузке Spring, Mongo4.0, приложению Spring-data.

Я обновился с MongoDB 3.6.x до MongoDB 4.0 и Spring data 2.0.x до Spring-data 2.1.0 дляуправление транзакциями при вставке данных в несколько документов.Но здесь я сталкиваюсь с этой проблемой при создании базы данных, коллекции и вставке документа в коллекцию.

Issue

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, создание базы данных, сбор и вставка не выполняются в рамках одной функции и базы данных, создание коллекции должно выполняться явно.

Ответы [ 2 ]

0 голосов
/ 22 августа 2019

используйте эту аннотацию в верхней части вашего модального класса

@org.springframework.data.mongodb.core.mapping.Document("DEMO")
0 голосов
/ 27 ноября 2018

Spring включает новую функцию, поставляемую с MongoDB 4.0, которая поддерживает транзакции с несколькими документами.Эта функция работает только для существующих коллекций, т. Е. Многодокументная транзакция не может включать операцию вставки, которая привела бы к созданию новой коллекции.Вы должны создать свои коллекции заранее, чтобы использовать эту функцию.

...