quinta-feira, 16 de fevereiro de 2012

Hibernate - melhorando a performance com Stateless Session

Trabalhar utilizando a conhecida Session em processos com muitos objetos é sempre muito custoso em termos de memória e velocidade, e as chances de se deparar com exceções de OutOfMemory são grandes.
Nesses momentos o recomendado pelo manual de referencia do Hibernate é a utilização da StatelessSession, este objeto não permite LazyInitialization, persistência em cascata, first-level cache entre outras funcionalidades, ficando muito mais próximo do JDBC.
Abaixo segue um exemplo básico que implementa a StatelessSession.

Nas pesquisas, tenho utilizado Stateless Session com Criteria ou HQL, dependendo da complexidade da pesquisa, nos momentos em que os dados retornados são apenas para visualização e após inserir e/ou recuperar algumas milhares de registros consegui perceber claramente as vantagens da StatelessSession.
Maiores informações sobre Stateless Session e batch processing no guia de referencia do Hibernate.

Nenhum comentário:

Postar um comentário