ObjectIdSerializerは、常に@ObjectIdでマップされたプロパティをObjectIdの新しいインスタンスに書き込みます。このプロパティを文字列にマップする場合、これは間違っています。
この動作を回避するために、NoObjectIdSerializerを作成しました:
public class NoObjectIdSerializer extends JsonSerializer<String> {
@Override
public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString(value);
}
}
このように使用されます:
@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;
未解決の問題があります。