1
resposta

Uso do EAGER em relacionamentos com final ToMany

Fala Professor, beleza?

De acordo com cursos anteriores que fiz na plataforma, por padrão, cardinalidades com final ToMany por padrão é LAZY.

Por exemplo, caso eu faça uma consulta ao nome do Funcionário, a lista de unidades estando como EAGER também será carregada na consulta, mesmo eu não precisando dessa informação.

Caso essa lista estivesse como LAZY, eu só receberia o resultado dessa lista caso acessasse alguma informação da mesma. Isso ajudaria na performance das consultas.

Nesse caso, gostaria de saber o motivo do uso do fetch como sendo EAGER nos relacionamentos ToMany da classe Funcionario, isso causaria problemas de consumo de memória e perfomance, visto que a lista seria carregada automaticamente? Por que mudamos de LAZY para EAGER?

Caso essas dúvidas sejam respondidas nas próximas aulas, por favor, desconsidere a mensagem.

1 resposta

Olá Ayrton, tudo bem?

O EAGER é utilizado quando queremos que a coleção seja carregada automaticamente junto com a entidade que a possui. Isso pode ser útil em alguns casos, mas pode causar problemas de performance e consumo de memória em situações em que a coleção é grande e não será utilizada em todas as consultas.

Por outro lado, o LAZY é utilizado quando queremos que a coleção seja carregada apenas quando for acessada explicitamente. Isso pode ajudar na performance das consultas, como você mencionou.

A escolha entre EAGER e LAZY depende do caso de uso específico e das necessidades da aplicação. É importante avaliar o tamanho da coleção e a frequência de uso para decidir qual estratégia é mais adequada.

Espero ter ajudado a esclarecer suas dúvidas. Bons estudos!