MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Renommez ObjectId _id en id dans la désérialisation jackson avec Jongo et MongoDB

ObjectIdSerializer écrit toujours la propriété mappée avec @ObjectId sur une nouvelle instance d'ObjectId. C'est faux lorsque vous mappez cette propriété à une chaîne.

Pour éviter ce comportement, j'ai écrit un NoObjectIdSerializer :

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

utilisé comme ceci :

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

Il y a un problème ouvert.