Olá a todos!
Para testar e tentar por em prática o que foi aprendido no curso de JPA, apliquei o FetchType.LAZY no relacionamento @ManyToOne entre Funcionários e Cargos:
@Entity
@Table(name = "funcionarios")
public class Funcionario {
// outros atributos
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "cargo_id", nullable = false)
private Cargo cargo;
}
Porém, como era de se esperar, na primeira consulta ao Visualizar dos Funcionários, tomei uma LazyInitializationException, por pedir que o cargo viesse atrelado ao nome do funcionário.
Imagino que, por baixo dos panos, o Spring tenha encerrado o acesso ao banco de dados antes de consultar o cargo do funcionário. É plausível essa hipótese?
Assim sendo, aplicar o FetchType.LAZY ao usar o Spring é má prática?
Ou existe alguma forma equivalente ao JOIN FETCH da JPA para prever as consultas agrupadas?