ObjectIdSerializer skriver alltid egenskap mappad med @ObjectId till en ny instans av ObjectId. Detta är fel när du mappar den här egenskapen till en sträng.
För att undvika detta beteende har jag skrivit en NoObjectIdSerializer :
public class NoObjectIdSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(value);
}
}
används så här :
@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;
Det finns ett öppet problem.