Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

6
respostas

Hibernate.initialize

O que este metódo faz ?

Quando devo utilizar ele ?

6 respostas

Fala ai Guilherme, tudo bem ?

Pelo pouco que li, vi que ele carrega alguns objetos com listas de maneira Eager.

Pelo que vi, ele faz isso fora do escopo da sessão, então pode ser usado para coisas no escopo de aplicação.

Mas nunca vi isso em algum sistema.

Correto. Isto eu entendi.

Seria assim:

Sendo que a, fez uma consulta no banco.

c depende de b que depende de a

Hibernate.initialize(a); Hibernate.initialize(a.b); Hibernate.initialize(b.c);

É isto ?

Todas as ligações são do tipo LAZY

Pelo que li, ele vai fazer todas as chamadas para você, se você fizer a inicialização para a, ele já chama b e c instantaneamente.

Pelo que li foi Eager, posso estar errado.

Porque o EAGER, já não traz tudo ?

Sim sim, já trás tudo sim, exatamente

Então tem que ser lazy