Asignación eficiente de POJO a / desde Java Mongo DBObject usando Jackson

Aunque similar aConvierta DBObject a un POJO usando el controlador Java MongoDB mi pregunta es diferente en que soyespecíficamente Interesado en usar Jackson para mapear.

Tengo un objeto que quiero convertir en una instancia de Mongo DBObject. Quiero usar el marco de Jackson JSON para hacer el trabajo.

Una forma de hacerlo es:

DBObject dbo = (DBObject)JSON.parse(m_objectMapper.writeValueAsString(entity));

Sin embargo, de acuerdo conhttps://github.com/FasterXML/jackson-docs/wiki/Presentation:-Jackson-Performance esta es la peor manera de ir Por lo tanto, estoy buscando una alternativa. Idealmente, me gustaría poder conectar con el canal de generación JSON y rellenar unDBObject instancia sobre la marcha. Esto es posible, porque el objetivo en mi caso es unBasicDBObject instancia, que implementa la interfaz del mapa. Por lo tanto, debe encajar en la tubería fácilmente.

Ahora, sé que puedo convertir un objeto a Map usando elObjectMapper.convertValue función y luego convertir recursivamente el mapa a unaBasicDBObject instancia utilizando el constructor de mapas de laBasicDBObject tipo. Pero, quiero saber si puedo eliminar el mapa intermedio y crear elBasicDBObject directamente.

Tenga en cuenta, que debido a unBasicDBObject es esencialmente un mapa, la conversión opuesta, es decir, de un escalarDBObject Para un POJO es trivial y debe ser bastante eficiente:

DBObject dbo = getDBO();
Class clazz = getObjectClass();
Object pojo = m_objectMapper.convertValue(dbo, clazz);

Por último, mi POJO no tiene ninguna anotación JSON y me gustaría que siga siendo así.

Respuestas a la pregunta(5)

Su respuesta a la pregunta