преобразование объектов 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.