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

Wie füge ich einer vorhandenen Spring-Data-Mongodb-Dokumentensammlung ein letztes Feld hinzu?

Ich habe festgestellt, dass es nicht möglich ist, ein neues private final hinzuzufügen -Feld in eine vorhandene Sammlung, indem Sie nur den @PersistenceContstructor verwenden Anmerkung. Stattdessen musste ich einen org.springframework.core.convert.converter.Converter hinzufügen Implementierung, um die Logik für mich zu handhaben.

So sah mein Konverter aus:

@ReadingConverter
public class SnapshotReadingConverter implements Converter<DBObject, Snapshot> {

    @Override
    public Snapshot convert(DBObject source) {
        long id = (Long) source.get("_id");
        String description = (String) source.get("description");
        boolean active = (Boolean) source.get("active");
        boolean billable = false;
        if (source.get("billable") != null) {
            billable = (Boolean) source.get("billable");
        }
        return new Snapshot(id, description, active, billable);
    }
}

Ich hoffe, dies kann in Zukunft jemand anderem helfen.