Serialización KMongo de BSONTimestamp

Estoy intentando serializar un BSONTimestamp con Kotlins KMongo lib. Pero dentro de MongoDb solo veo su representación de Cadena.

"someVal" : { "inc" : 1, "time" : 1495104096 } 

¿Debo poner alguna Anotación para que Jackson la serialice correctamente?

Dudo que esto tenga algo que ver con KMongo en realidad, pero puedes intentar informarlo a los problemas de github. El autor es muy receptivo

Sin embargo, lo leí como un problema de serialization de Jackson, así que la mejor manera de resolverlo en mi opinión sería crear una regla de serialization similar a

 object BSONTimestampModule : SimpleModule("BSONTimestampModule") { init { addSerializer(BSONTimestamp::class.java, object : JsonSerializer<BSONTimestamp>() { override fun serialize(value: BSONTimestamp?, gen: JsonGenerator, serializers: SerializerProvider?) = gen.writeString(value?.time) }) } } 

No sé exactamente qué se espera que BSONTimestamp guarde, así que puede que tenga que modificarlo un poco, pero una vez que se defina el module, regístrelo con Jackson Mapper como

KMongoConfiguration.extendedJsonMapper.registerModule(BSONTimestampModule)

Parece que te refieres a BsonTimestamp, que sí es el que mongo-java usa por defecto (y no tiene nada que ver con KMongo en realidad). BSONTimestamp es una implementación especial utilizada "internamente" para mongo y normalmente no se supone que deba ser utilizada por ninguna persona externa. Lo mismo es cierto para todo en el package org.bson.types. Esos no son sus contratos normales y son más para las interacciones de nivel binary o de nivel de controller con mongo.

BsonTimestamp (en el package org.bson) es de hecho el tipo de datos real que se obtiene a través de cualquiera de las transformaciones de date mongos a / desde.

Siento haber visto que utilizas todas las BSON mayúsculas y asumiste que querías hacer algo más avanzado.

El autor fue bastante simple, utilicé la class incorrecta BSONTimestamp. Por alguna razón, hay dos, uno en org.bson y uno en org.bson.types . Con la class de org.bson, la creación de KMongo en el serializador hace su trabajo, ¡duh!

  • java.lang.VerifyError creando una tarea de gradle con kotlin
  • Efectos secundarios condicionales y types opcionales en Kotlin
  • RxJava salida diferente entre Flowable y Observable con window y Groupby
  • Kotlin: ¿Cómo puede un constructor hijo usar el constructor secundario de sus padres?
  • Cambia una list para mapear en Kotlin mientras personalizas esta conversión
  • Tratando de entender el ejemplo de Kotlin
  • ¿Cómo get la reference de class de KParameter en kotlin?
  • TornadoFX envuelve las classs de dominio en ItemViewModel
  • Anomalías de cobertura de código Android (Kotlin)
  • ¿Cómo las funciones de almacenamiento en la colección estática afectarán el sistema?
  • El uso de la propiedad NewApi sigue causando advertencias sobre la pelusa