Olá pessoal,
Eu utilizo annotations e hibernate.properties, faço o mapeamento das classes na factory, o problema é que estou constantemente recebendo o erro “too many connections”
pesquisei bastante e já descobri que a factory deve gerar o mapeamento somente uma vez, mas não sei como resolver isso, ao olhar no mysql existem várias conexões abertas em sleep.
Minha factory
public class FabricaDeSessao {
public Session abreSessao() {
AnnotationConfiguration cfg = new AnnotationConfiguration();
// cfg.addAnnotatedClass(objeto.getClass());
cfg.addAnnotatedClass(Cliente.class);
cfg.addAnnotatedClass(Usuario.class);
cfg.addAnnotatedClass(Taxi.class);
cfg.addAnnotatedClass(Corrida.class);
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
return session;
}
public void fechaSessao(Session session) {
session.getTransaction().commit();
session.close();
}
}
Dao
public void PesquisaCorridaDataGerada(Date dataInicial,
Date dataFinal) {
try{
session = fabricaDeSessao.abreSessao();
Criteria select = session.createCriteria(Corrida.class);
select.add(Restrictions.between("dataCorridaGerada", dataInicial, dataFinal));
List<Corrida> listaCorridas = select.list();
System.out.println("fiz pesquisa no banco");
for(Iterator<Corrida> it =
listaCorridas.iterator();it.hasNext();){
Corrida corrida = (Corrida) it.next();
System.out.println("Corrida cliente nome:"+corrida.getCliente().getNome());
}
}
catch (Exception e) {
System.out.println(e);
}
//return select.list();
}
Obrigado