Desconectando o hibernate

0 respostas
zorba

bom dia pessoal :smiley:
tenho uma aplicação que, ao selecionar alguma versão do backup do banco de dados (um arquivo .tar), dropa o base, recria a base (utilizando o dropdb e o createdb do postgre :D), e importa o backup selecionado.
até ai blz, ela funciona perfeitamente. mas quando eu tiro algum relatório dessa base, eu instancio o hibernate, e quando tento selecionar outro backup para ver os relatórios dessa base, não consigo realizar o drop da base, pois o postgre diz que ainda tem um usuário conectado com o base, por isso não pode deletar.
meu código atual esta assim

monitor.beginTask("Deletando base de dados existente", -1);
                       //Se o contexto é diferente de null, significa que o hibernate ja foi instanciado
			if(ApplicationContextUtils.getContext() != null){
				ComboPooledDataSource c3 = 
					(ComboPooledDataSource) ApplicationContextUtils.getBean("pooledDataSource");
				c3.close();
				
				SessionFactoryImpl factory = 
					(SessionFactoryImpl) ApplicationContextUtils.getBean("sessionFactory");
				
				System.err.println("Desconectando o hibernate!");
				if(factory != null){
					System.err.println("SF não é null!");
					factory.getCurrentSession().close();
					factory.close();
				}
			}
			DBUtil.dropFranquia();

como eu faço pra, vamos dizer assim, desinstanciar o hibernate?

Criado 4 de novembro de 2010
Respostas 0
Participantes 1