ObjectIdSerializer luôn ghi thuộc tính được ánh xạ với @ObjectId vào một phiên bản mới của ObjectId. Điều này sai khi bạn ánh xạ thuộc tính này thành một chuỗi.
Để tránh hành vi này, tôi đã viết NoObjectIdSerializer:
public class NoObjectIdSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(value);
}
}
được sử dụng như thế này:
@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;
Có một vấn đề mở.