MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Benennen Sie ObjectId _id in Jackson-Deserialisierung mit Jongo und MongoDB in id um

ObjectIdSerializer schreibt die mit @ObjectId zugeordnete Eigenschaft immer in eine neue Instanz von ObjectId. Dies ist falsch, wenn Sie diese Eigenschaft einem String zuordnen.

Um dieses Verhalten zu vermeiden, habe ich einen NoObjectIdSerializer :

geschrieben
public class NoObjectIdSerializer extends JsonSerializer<String> {
    @Override
    public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString(value);
    }
}

so verwendet :

@ObjectId
@JsonSerialize(using = NoObjectIdSerializer.class)
protected final String _id;

Es gibt ein offenes Problem.