Hibernate Mestre/Detalhe

3 respostas
natanloterio

Olá, sou novato no hibernate e estou com um problema de otimização em uma consulta.
O problema é o seguinte: tenho um relacionamento Mestre -< Detalhe que é usado em várias partes do programa. Mas possuo também uma tela que lista apenas a tabela Mestre. Acontece que o hibernate carrega todos os detalhes para cada registro mestre e isso deixa a tela muito lenta devido ao grande número de registros exibidos nesta lista.
Posso usar o mesmo mapeamento da tabela Mestre mas de alguma forma dizer pro Hibernate não carregar os detalhes?

3 Respostas

Hebert_Coelho

Mapeie a lista como LAZY.

Aqui você pode encontrar como consultar o valor com uma lista LAZY: JPA Consultas e Dicas.

Regis_A_Rocha

Por default os mapeamentos com @…ToMany é to tipo lazy.

Verifique se em algum ponto apos a pesquisa, voce nao esta chamando por algum get… ou se no mapeamento voce nao deixou explicito eager.

Hebert_Coelho

Regis A Rocha:
Por default os mapeamentos com @…ToMany é to tipo lazy.

Verifique se em algum ponto apos a pesquisa, voce nao esta chamando por algum get… ou se no mapeamento voce nao deixou explicito eager.

Mas se ele disse que tá lento, pode ser que alterou para EAGER para solucionar LazyInitializationException. E pode ser também por fazer LOAD de arquivos de fotos mapeados dentro das classes.

Criado 16 de outubro de 2012
Ultima resposta 16 de out. de 2012
Respostas 3
Participantes 3