Dúvida - Lazy Load por padrão no hibernate?

Eu fiz minha API Rest em uma das requisições de teste apareceu o seguinte erro:

No serializer found for class org.hibernate.proxy.pojo.javassist.Javassist.

Googleei e vi que a anotação:

@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})

resolveria minha situação. Mas até outro dia eu estava fazendo essa mesma API e não dava esse problema. A pergunta é: o hibernate sempre liga esse Lazy Load por padrão?

1 curtida

Sim, e depende de como está seu mapeamento. O ideal é usar HQL com fetch join, para gerar um único SQL com o resultado final de forma eficiente. Acessar propriedade Lazy não é apropriado para requisições web. Deixa mapeado como Lazy mas gere as querys com HQL aplicando fetch nos joins.

1 curtida

Utilize EAGER.