2015-04-06 3 views
2

Я работаю над проектом с Spring Integration. В какой-то момент в потоке сообщений я использую MongoDB Outbound Channel Adapter для сохранения полезных данных в моей базе данных mongodb.Получение идентификатора недавно вставленного документа

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

ответ

1

Вы можете попробовать:

BasicDBObject doc = new BasicDBObject("foo", "bar"); 
collection.insert(doc); 
ObjectId id = (ObjectId)doc.get("_id"); 
+0

Thank you chridam. Подход, который вы указали, - это java-способ его использования с использованием mongo-java-драйвера. Тем не менее, я искал решение, используя функции, найденные в Spring Integration (если есть). Тем не менее, я подтвердил ваш ответ, поскольку он частично решает мою проблему. – Tanvir

3

От MongoTemplate.insert(Object):

Если объект имеет «свойство Id», он будет установлен с генерируемым Id из MongoDB Если свойство Id есть. String, то MongoDB ObjectId будет использоваться для заполнения этой строки. В противном случае преобразование из ObjectId в ваш тип свойства будет обрабатываться классом BeanWrapper Spring, который использует API преобразования типов. См. «Преобразование типов Spring» для получения более подробной информации.

+0

Спасибо, сфат. Подход, который вы показали, - это способ использования данных с пружинными данными. Тем не менее, я искал решение, используя функции, найденные в Spring Integration (если есть). Например, (как я уже упоминал в своем вопросе), я могу сэкономить полезную нагрузку в моей базе данных без прямого использования любого API-интерфейсов mongo-java или spring-data. Было бы здорово, если бы я смог найти аналогичный способ получить вставленный идентификатор документа. Тем не менее, я подтвердил ваш ответ, поскольку он частично решает мою проблему. Очень признателен. – Tanvir

+0

@ Танвир, ты посмотрел на этого парня? http://stackoverflow.com/questions/21459319/spring-integration-messagechannel-id Кажется, что-то вам нужно, если вы хотите использовать Spring Integration – sfat

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