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!

3
respostas

interpretação JOIN FETCH

Se o JOIN FETCH serve para carregar um relacionamento, pq ele evita carregar relacionamentos em todas as consultas? o que faz isso não seria o fetch Lazy ??

3 respostas

A vantagem é que definindo o FETCH.EAGER como anotação na entidade, em qualquer lugar da sua aplicação que acessar aquela entidade o relacionamento será carregado junto ainda que não se use ele.

Usando o JOIN FETCH na query, somente quem utilizar aquela query especifica irá carregar o relacionamento. Outros lugares da aplicação que acessem a entidade continuará com o carregamento LAZY.

"Evita carregar relacionamentos em todas as consultas" como diz a questão? Somente se o restante dos relacionamentos for lazy, é pegadinha essa questão?

Essa afirmação, pelo que entendi, compara a query Fetch Join, com a anotação Eager na entidade, então realmente estaria certa a afirmação.