sql >> Base de Datos >  >> NoSQL >> MongoDB

Cambiar el nombre de ObjectId _id a id en la deserialización de jackson con Jongo y MongoDB

ObjectIdSerializer siempre escribe la propiedad asignada con @ObjectId a una nueva instancia de ObjectId. Esto es incorrecto cuando asigna esta propiedad a una cadena.

Para evitar este comportamiento, escribí un NoObjectIdSerializer:

public class NoObjectIdSerializer extends JsonSerializer<String> {
    @Override
    public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString(value);
    }
}

usado así:

@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;

Hay un problema abierto.