Thread e Hibernate Session

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,

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.

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,