1
resposta

LazyInitialization load, como resolver no spring data?

No jpa quando uma entidade tinha um atributo, que era também um relacionamento e lazy, dava para resolver com join fetch. E no spring sem mudar o tipo de carregamento? Tentei fazer um join fetch com jpql e native query mas nao funcionou. Queria saber se tem um join fetch no spring data

1 resposta

Olá Matheus!

Entendo sua dúvida sobre como resolver o problema de LazyInitialization no Spring Data JPA. Uma possível solução seria utilizar a anotação @Transactional no método que está sendo executado, isso fará com que o relacionamento seja carregado antes da transação ser finalizada.

Outra opção seria utilizar a anotação @EntityGraph na sua consulta, que permite carregar os relacionamentos especificados na consulta de forma antecipada, evitando o LazyInitialization.

Por exemplo:

@Repository
public interface PessoaRepository extends JpaRepository<Pessoa, Long> {

    @EntityGraph(attributePaths = "endereco")
    List<Pessoa> findAll();

}

Neste exemplo, a consulta irá carregar a entidade Pessoa e o relacionamento com a entidade Endereco.

Espero ter ajudado e bons estudos!