MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como exatamente spring-data-mongodb lida com construtores ao reidratar objetos?


O processo populacional é duplo e ortogonal até certo ponto. Principalmente, você já declarou o comportamento correto. O construtor é invocado para criar uma instância de objeto. Os valores dos parâmetros são recuperados do DBObject read e pode causar uma criação recursiva de objetos no caso de você entregar objetos complexos no construtor que precisam ser desempacotados de um DBObject aninhado .

A próxima etapa é que seus campos persistentes sejam preenchidos. A única diferença no seu caso para o caso com um construtor padrão é que lembramos os valores de campo que você entregou ao construtor e não os preenchemos novamente.

A date propriedade em seu exemplo ainda seria definida após a inicialização no construtor if o documento de origem do qual o objeto é materializado contém um valor para date .