convertendo objetos de documento no MongoDB 3 para POJOS

Estou salvando um objeto com um campo java.util.Date em uma instância do MongoDB 3.2.

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

a String contém:

"captured": 1454549266735

então eu li na instância do 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);

a desserialização falha:

java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Não é possível desserializar a instância do java.util.Date fora do token START_OBJECT

Vejo que a string json criada por "document.toJson ()" contém:

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

em vez do que havia originalmente ("capturado": 1454549266735) Os documentos do MongoDB dizem que começaram a usar o "MongoDB Extended Json". Tentei tanto o Jackson 1 como o 2 para analisá-lo - sem sorte.

Qual é a maneira mais fácil de converter os objetos de documento fornecidos pelo MongoDB 3 em POJOs Java? talvez eu possa pular para o passo deson () completamente?

Eu tentei o mongojack - esse não suporta o MongoDB3.

Observamos outros mapeadores de POJO listados na página de documentos do MongoDB - todos eles exigem que você faça anotações personalizadas nas classes Java.

questionAnswers(4)

yourAnswerToTheQuestion