Hibernate lazy load

10 respostas
A

Galera,

Eu uso muito o lazy load do hibernate, como eu acho que muita gente faz aqui. Mas, nas situações em que o banco de dados está no servidor diferente do servidor web isso não fica muito oneroso?

Alberto

10 Respostas

T

Hummm pq ? Não seria justamente o contrário ?

A

Não entendi velho, como assim justamente o contrario?

Alberto

T

A função do lazy é justamente evitar acesso desnecessário ao banco.
Considerando que seja mais oneroso acessar um banco remoto invés de
um local, concorda que quanto menor for o acesso mais rápido seria.

T

Em outras palavras, quanto mais custoso for o acesso ao BD, mais interessante é utilizar o lazy.

_fs

Alberto, entendi seu problema.

Pessoa p = session.get…

  • 1 chamada
    p.getDocumentos()
  • 2 chamadas
    p.getTelefones()
  • 3 chamadas

É oneroso se você deixar de inicializar as associações que precisa antes de retornar o objeto.

A

é justamente isso, eu geralmente deixo no lazy mas por exemplo, tem associações que só uso numa tela, mas nessa tela eu uso umas 3 aí justamente nesse ponto meu desempenho foi por agua a baixo. Alguma sugestão?

Alberto

_fs

Inicialize os relacionamento na mesma transação.

Aqui uma forma adequada, seção 14.2:
http://www.hibernate.org/hib_docs/reference/en/html/performance.html

A

Valeu Lipe, o lance do batch-size parece ser a melhor opção para essa situação, vou fazer uns testes para ver como fica.

Alberto

nandobgi

Desculpem a ignorância mas o que o lazy load do hibernate se propõe a fazer?

Obrigado

plentz

Basicamente, carregar os objetos somente quando eles forem necessários.

Criado 16 de abril de 2007
Ultima resposta 21 de abr. de 2007
Respostas 10
Participantes 5