Il processo di popolazione è duplice e in una certa misura ortogonale. Per lo più, hai già dichiarato il comportamento corretto. Il costruttore viene richiamato per creare un'istanza dell'oggetto. I valori dei parametri vengono recuperati da DBObject
leggere e potrebbe causare una creazione ricorsiva di oggetti nel caso in cui si consegnano oggetti complessi nel costruttore che devono essere annullati dal marshalling da un DBObject
annidato .
Il passaggio successivo è che i tuoi campi persistenti vengano popolati. L'unica differenza nel tuo caso rispetto al caso con un costruttore predefinito è che ricordiamo i valori dei campi che hai consegnato al costruttore e non li ripopoli.
La date
la proprietà nel tuo esempio verrebbe comunque impostata dopo l'inizializzazione nel costruttore if il documento di origine da cui è materializzato l'oggetto contiene un valore per date
.