2013-09-18 3 views
0

Как проверить, успешно ли добавлен объект A, добавленный в базу данных? Метод MongoTemplate.save() не возвращает никакого значения для проверки его результата. Я нашел способ инициировать значение, если A.Id до того, как я сохраню A в базе данных с помощью метода MongoTemplate.save(), и вернуть обратно сохраненную запись с использованием этого значения Id, но этот способ не удовлетворяет меня. Как проверить, сохраняя поле Id, сгенерированное базой данных?Проверьте, что новая запись успешно вставлена ​​в базу данных

ответ

0

Необходимо изменить значение writeconcern.

// This concern ensure the record saved to the disk. 
var wConcern = new WriteConcern { W = 1, Journal = true }; 

WriteConcernResult wConcernResult; 
_repository.Update(ourTransaction, wConcern, out wConcernResult); 
if (wConcernResult == null) 
if (wConcernResult != null && wConcernResult.HasLastErrorMessage) 
{ 
     _logger.Error(wConcernResult.LastErrorMessage); 
} 

В коде обновления вы можете передать значение writeconcern для метода сохранения

MongoTemplate.save(entity,writeconcern) 
+0

Благодарим Вас за быстрый ответ. Этот WriteConcertResult поможет в моем случае, хотя он немного широк в использовании. Также это MongoDB, это интересно. Я буду копать больше в этот WriteConcern и WriteConcernResult позже. Только сейчас я обнаружил, что если я использую MongoTemplate.save (A) и A успешно сохранен в базе данных, тогда у меня будет A.Id, совпадающий с идентификатором только что полученной записи. В соответствии с этим я могу проверить, успешна ли операция сохранения или нет. – nhduc

+0

Это правда, но если вы хотите, чтобы ваш идентификатор, записанный на жесткий диск не в памяти, вам нужно установить Journal = true, чтобы написать свойство cons. В противном случае другой поток может вставить те же данные в db, если только уникальный индекс не имеет значения –

Смежные вопросы