MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

In che modo spring-data-mongodb gestisce esattamente i costruttori durante la reidratazione degli oggetti?

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 .