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.