2016-08-12 2 views
1

Есть ли способ читать значения MongoDB для объектов моего типа, не преобразовывая их из SimpleDBObject?MongoDB литье документов в пользовательские типы

Я пытался получить все документы из коллекции с coll.find(), но когда я итерацию по ним я получаю

Не удается найти кодек для интерфейса com.mynamespace.models.interfaces.Profile.

Каков правильный путь? Я использую стандартный драйвер Java.

Насколько я помню, на C# и Couchbase я просто писал/читал документы в свои пользовательские типы. Как здесь?

ответ

0

Что-то, что я использовал в прошлом, это Mongo Jack. Это обеспечивает простую оболочку, которая, согласно их документации, непосредственно отображает POJO из потока Mongo без посредника SimpleDBObject. Это также использует библиотеку Джексона, поэтому вы можете использовать аннотации сериализации Джексона и де-сериализации.

Это то, что говорит сайт:

Deserialises опрошен объекты непосредственно из потока MongoDB, что делает его одним из (если не) быстрых объектов картографов для MongoDB там.

Возможно, это то, что вы ищете, да?

Вот пример с веб-сайта:

JacksonDBCollection<MyObject, String> coll = JacksonDBCollection.wrap(dbCollection, MyObject.class, 
     String.class); 
MyObject myObject = ... 
WriteResult<MyObject, String> result = coll.insert(myObject); 
String id = result.getSavedId(); 
MyObject savedObject = coll.findOneById(id); 
+0

да, somethin подобный. Итак, я прав, нет ничего, как прямая сериализация/десериализация в комбинации Mongo + Java? без сторонних библиотек, я имею в виду – ArkadyB

+0

@ArkadyB в соответствии с описанием на веб-сайте, они десериализуются непосредственно из потока Mongo, с веб-сайта: «Deserialises запрашивает объекты непосредственно из потока MongoDB, делая его одним из (если не) самые быстрые объекты для MongoDB »- сайт Mongo Jack – Himself12794

+0

@ArkadyB Да, я включил один в свой ответ, хотя, если вы ищете больше, вы можете попробовать [учебник] (http://mongojack.org) /tutorial.html) на веб-сайте. – Himself12794

0

Новая Codec инфраструктура в Монго-Java-драйвер> = 3,0 довольно много делает то, что вы хотите. Вам нужно создать Codecs вручную, но также были предприняты некоторые усилия для create codecs automatically.

Есть также другие полномасштабные каркасы ODM, такие как Morphia и Spring Data MongoDB.

0

Morphia - официально поддерживаемый ODM для MongoDB и Java. Пользовательские кодеки могут быть записаны для ваших объектов Java, чтобы сериализация была в значительной степени прозрачной для вашего приложения. Весенние данные и mongojack также являются отличным выбором. Весенние данные активно поддерживаются, хотя я не совсем уверен, как развивается активная монгожка.

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

  • Нет связанных вопросов^_^