MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Rinomina ObjectId _id in id nella deserializzazione jackson con Jongo e MongoDB

ObjectIdSerializer scrive sempre la proprietà mappata con @ObjectId a una nuova istanza di ObjectId. Questo è sbagliato quando si associa questa proprietà a una stringa.

Per evitare questo comportamento, ho scritto un NoObjectIdSerializer :

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

usato in questo modo :

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

C'è un problema aperto.