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 ??
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 ??
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.