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

Comportamento de projeção Morphia para variável de instância com valor padrão


Quando o Morphia está lendo seus documentos a partir dos resultados da consulta, a primeira coisa que ele faz é criar uma nova instância de sua entidade, Student . Ele apenas invoca o construtor sem argumento. Não há mágica envolvida. O campo cidade é inicializado com um valor. Feito isso, o Morphia pegará cada chave no documento retornado do banco de dados, encontrará aquele campo mapeado e o definirá. No seu caso, não há chave de cidade no documento e, portanto, esse campo nunca é definido pelo Morphia deixando o valor inicializado no lugar.

Em geral, inicializar campos em entidades como essa é uma prática ruim. Para cada entidade carregada do banco de dados, a JVM precisa inicializar esses campos com algum valor apenas para sobrescrevê-los posteriormente. Em casos como o seu, em que determinados campos não retornam em um resultado de consulta, esses valores permanecem após o Morphia retornar as novas instâncias de volta ao seu aplicativo.