Pessoal,
tenho a seguinte duvida em relacao a utilizacao de hibernate + hsqldb:
Estou criando uma aplicacao desktop, que vai utilizar esse configuracao.
Qual deve ser o escopo da sessao do hibernate. Devo cria-la para cada requisicao ou posso deixar uma sessao aberta durante toda a execucao do programa?
Minha duvida em relacao a criar uma sessao para cada operacao eh a performance do sistema, e tbm a questao de que nao vou poder fazer o caminhamento do grafos dos objetos, jah q com a sessao fechada a carga "lazy"nao funciona.
desde ja agradeco a atencao,
Francisco
Se seu banco tem um grande numero de tabela relacionadas, iniciar a a sessão toda vez que a mesma for necessária vai causar um grande degradação da performance.
Apesar de que quando iniciamos uma sessão ela vai para a memoria, e enquanto ela tiver na memoria as outras iniciações seram muito mais rápidas (quase intataneas).
Mas aplicações bem elaboradas não podem contar com o coelho na cartola, eu inicio minha sessão no começo e fecho no fim, mesmo porque eu uso lazy loading, para que os meus objetos não fiquem muito grandes.
Obrigado pela resposta.
So para deixar claro, estamos falando da Session, e nao da SessionFactory?
Outra duvida que tenho eh se o lazy-loading funciona apenas quando existe uma transacao aberta ou mantendo-se a Session aberta ele funciona normalmente?
[]´s
Francisco
com a sessao aberta ele já funciona, porque cria uma transação automaticamente.