Bom dia 
Estou testando minha app e somente eu acessando, está com problemas de muitas conexões pq existem pesquisas que são feitas na hora, mas isso não pode acontecer. Não sei mais o que fazer pq pensei que seria problema de finalizar a sessionFactory ou a session, mas já vi que não é.
Todas minhas actions criam uma nova instância da minha classe Queries, que é onde se concentram as ações com o BD, pensei em fazer ela como singleton mas ai eu não teria como passar a classe para a Queries e o hibernate não sei como ele iria se comportar para acertar qual tabela usar, será que um set/get + singleton ajudaria?
Alguém tem alguma sugestão?
Queries.java
public class Queries {
private SessionFactory sessionFactory;
private Class<Object> _class = null;
private Transaction tx;
private Session session;
@SuppressWarnings("unchecked")
public Queries(Class classe) {
_class = classe;
sessionFactory = new Configuration().addClass(_class).buildSessionFactory();
iniciarOperacao();
}
public void iniciarOperacao() {
session = sessionFactory.openSession();
tx = session.beginTransaction();
}
public void inserir(Object bean) {
// iniciarOperacao();
session.save(bean);
tx.commit();
session.flush();
session.close();
}
@SuppressWarnings("unchecked")
public boolean verificarUnidadeID(Integer ID) {
List<Object> resultados = null;
// iniciarOperacao();
Query query = session
.createSQLQuery("SELECT * FROM unidade WHERE unidade_id = "
+ ID);
resultados = query.list();
session.close();
if (resultados.size() == 0) {
return true;
}
return false;
}
public void fecharConexao(){
if(sessionFactory.isClosed() == false) {
sessionFactory.close();
sessionFactory = null;
}
if(session.isConnected() == true || session.isOpen() == true){
session.clear();
session.close();
session = null;
}
}
}
ActionQualquer.java
Queries queries = new Queries(br.com.sgdi.bean.regional.RegionalBean.class);
List<Object> lista = queries.buscarTodosResultados();
Na Queries eu coloquei 2 métodos de como eu uso, um para métodos simples como inserir, atualizar e deletar e outros para busca e na Action é desse jeito que eu chamo, só muda a classe que eu passo para o construtor da Queries.
Tem algum jeito de melhorar esse problema?
[]'s