преобразование объектов Document в MongoDB 3 в POJOS

Я сохраняю объект с полем java.util.Date в экземпляр MongoDB 3.2.

ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(myObject);
collection.insertOne(Document.parse(json));

строка содержит:

"captured": 1454549266735

затем я прочитал это из экземпляра MongoDB:

    final Document document = collection.find(eq("key", value)).first();
    final String json = document.toJson();
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    xx = mapper.readValue(json, MyClass.class);

десериализация не проходит:

java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Невозможно десериализовать экземпляр java.util.Date из маркера START_OBJECT.

Я вижу, что строка json, созданная функцией document.toJson (), содержит:

"captured": {
    "$numberLong": "1454550216318"
}

вместо того, что было изначально («захвачено»: 1454549266735), документы MongoDB говорят, что они начали использовать «MongoDB Extended Json». Я пытался разобрать оба Джексона 1 и 2 - не повезло.

Какой самый простой способ преобразовать объекты Document, предоставляемые MongoDB 3, в Java POJO? может быть, я могу пропустить шаг toJson () вообще?

Я попробовал mongojack - тот не поддерживает MongoDB3.

Посмотрел пару других картографов POJO, перечисленных на странице документации MongoDB - все они требуют размещения своих пользовательских аннотаций в классах Java.

Ответы на вопрос(4)

Ваш ответ на вопрос