Otimizando consultas com cláusula JOIN FETCH (forma correta)
Atualizado
Atualizado
❗Importante dizer, essa cláusula não funciona para busca paginadas do Spring.
Na classe de EmployeeRepository, criaremos um método com uma consulta personalizada
Exemplo:
Importante ressaltar, essa consulta na query não é SQL e sim JPQL, uma linguagem de consulta da JPA. A semântica muda, precisamos dar um "apelido" pro objeto que vamos buscar. Como colocamos acima: "obj". E no final, não precisa colocar o nome da tabela e sim da classe, conforme colocamos: Employee.
❗Importante
A JPA mantém um "cache" das entidades gerenciadas na mesma sessão JPA.
Ou seja, se você trouxer essas entidades para a memória, A JPA não volta ao banco se você precisar novamente delas (desde que seja a mesma seção JPA).
Com o código daquele jeito acima, ele buscaria alguns departamentos até achar o correto.
Para que isso não aconteça, utilizamos o JOIN FETCH, veja:
Consulta otimizada no console, buscando por funcionários já fazendo o Join no department: