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.