Thread e Hibernate Session

2 respostas
Guilherme_Gomes

Previa: tenho uma aplicação web rodando e atraves de um login e senha, o browser te leva a uma nova area do site onde uma das opções é processar um arquivo.

Para fazer o processamento do arquivo uso Threads, pois este processamento pode ser demorado!!! Durante o processamento preciso fazer um select no meu BD por apenas um campo de uma tabela:

List list = session.createQuery("select i.cdificha from Inscrito i").list();

Durante o processamento da thread isso não funciona, lançando um java.lang.NullPointerException… Mas se faço um JSP com essa list e mando colocar a lista em tela, funciona perfeitamente, com exatamente a mesma linha de código…

Existe algum problema em acessar o hibernate por uma Thread para que isso não funcione? Alguma restrição? Ou qual seria o problema?

Obrigado,

2 Respostas

marcelo_mococa

Você está usando OpenSessionInView???
Se este for o seu caso, não irá funcionar mesmo, pois a nova thread não compartilha o mesmo objeto ThreadLocal que você está usando no Filtro que abre a sessão.

jamikas

Se vc estiver utilizando um HibernateSessinoFilter e uma Factory que é o ideal, o que da pra fazer é criar um factory esclusiva para as Threads extendendo a Factory já existente. Assim vc reaproveitara o Objeto SessionFactory que esta instanciado. E replica os demais atributos e metodos.

Abços,

Criado 11 de setembro de 2007
Ultima resposta 11 de set. de 2007
Respostas 2
Participantes 3