Alguem poderia me ajudar com a abertura e fechamento de sessoes do hibernate?
O que acontece:
Eu executo algumas vezes a query ele ele faz certo, na terceira vez ele nao executa e diz
java.sql.SQLException: Connections could not be acquired from the underlying database!
Veja meu codigo:
public List ListarSalasDisponiveis(){
listaSalaDisponivel = new ArrayList<Sala>();
Session session = null;
try{
session = new HibernateUtil().getSession();
session.beginTransaction();
aloca.setDiaSemana(diasemana);
aloca.setHoraInicio(horainicio+":"+minutoinicio);
aloca.setHoraFim(horafim+":"+minutofim);
listaSalaDisponivel.clear();
listaSalaDisponivel = new AlocaDao(session).listarSalaDisponivel(aloca);
session.getTransaction().commit();
}catch (Exception e) {
System.out.println("Não foi possivel listar as salas disponiveis");
e.printStackTrace();
}finally{
session.close();
}
return listaSalaDisponivel;
}
Falta alguma coisa?Isso pode ser configuração no banco?O que pode ser?
Opa me desculpe a demora…
então voce deve manter a session aberta ate o momento que vc não for utilizar mais
em uma pagina web por exemplo onde o fluxo seja assim:
servlet> jsp
a conexao deve ser aberta no servlet deve ficar aberta ate o carreganto da jsp (pode preencher uma combo sei la).
Opa!vlw mais uma vez.
Entendi.Da maneira q eu citei acima, para preencher combo foi tranquilo, nao deu mais esse tipo de erro. Meu problema é quando eu uso em um formulario cheio de combos pre-carregadas, um botao no formulario com um actionlistener.Vou ser claro:
Tenhu um formulario de busca, nesse formulario tem 3 combos dinamicas, um commandbutton e um datatable.
depois de eu selecionar os dados para a pesquisa,nas combos, eu clico no commandbutton,que executa uma consulta com os dados das combos, que ira preencher a datatable com o resultado da query.
O botao tem um actionlistener que carrega o datatable sem mudar de pagina, mudando as informaçoes da mesma.
Mas qdo eu aperto o botao, alem dele atualizar o datatable, ele carrega as combos(não sei o porque), se eu apertar o botao para pesquisar mais vezes, ele dá o erro que eu citei acima.
Vc tem alguma dica que possa me dá???
Fui claro??? :roll: