Estou há algum tempo já com esse problema. Em certas partes do programa o processo demora e o usuário pode achar que ele travou. Então preciso de uma progressbar. Só que ainda não consegui o resultado esperado. Algumas das tentativas que fiz:
Tentativa: iniciar classe da progressbar na classe do hibernate.
Problema: ela funciona, porém não atualiza a tela enquanto o processo nao acabar.
Tentativa: fazer uma nova thread, colocar só a classe da progresbar dentro dela e iniciar logo depois.
Problema: o mesmo citado acima.
Tentativa: fazer uma nova thread e colocar todo o método da classe do hibernate dentro dela.
Problema: o hibernate gera exceções sem lógica. Uma hora aparece erro, outra hora não. Sem a thread o código funciona normalmente.
Eu sinceramente não sei mais o que fazer. Se alguém tiver uma idéia do que posso fazer pra progressbar aparecer sem travar e a outra classe continuar funcionando normalmente, peço por favor que poste aqui.