J'ai trouvé qu'il n'est pas possible d'ajouter un nouveau private final
champ à une collection existante en utilisant uniquement le @PersistenceContstructor
annotation. Au lieu de cela, j'avais besoin d'ajouter un org.springframework.core.convert.converter.Converter
implémentation pour gérer la logique pour moi.
Voici à quoi mon convertisseur a fini par ressembler :
@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);
}
}
J'espère que cela pourra aider quelqu'un d'autre à l'avenir.