ObjectIdSerializer vždy zapíše vlastnost mapovanou pomocí @ObjectId do nové instance ObjectId. To je špatně, když mapujete tuto vlastnost na řetězec.
Abych se tomuto chování vyhnul, napsal jsem NoObjectIdSerializer :
public class NoObjectIdSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(value);
}
}
používá se takto :
@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;
Existuje otevřený problém.