MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Renomeie ObjectId _id para id na desserialização de jackson com Jongo e MongoDB


ObjectIdSerializer sempre grava a propriedade mapeada com @ObjectId em uma nova instância de ObjectId. Isso está errado quando você mapeia essa propriedade para uma String.

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

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

Há uma questão em aberto.