Boa tarde, estou com o seguinte problema, eu estou desenvolvendo uma aplicaçao e ela faz muitas buscas no banco, eu configurei o hibernate mas sou iniciante e nunca tinha feito nada com o mesmo antes, e minha aplicaçao depois de um tempo executando ela trava falando q foi excedido o numero maximo de sessions, eu estou usando um banco de dados oracle express como teste mas msm assim creio que msm com o numero de sessoes limitadas q esse banco tem nao era pra dar esse erro.
esse eh um exemplo de uma classe DAO que eu fiz
public class ServerDAO {
private SessionFactory sessionFactory;
private Logger logger;
public ServerDAO() {
sessionFactory = new Configuration().configure().buildSessionFactory();
//PropertyConfigurator.configure("log4j.properties");
logger = Logger.getLogger(ServerDAO.class);
}
public void insert(Server s){
try{
logger.info("Inserindo novo servidor " + s.toString());
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
sessionFactory.close();
logger.info("Servidor inserido com sucesso.");
}catch (Exception ex){
logger.error("Não foi possível inserir um novo Servidor. Motivo:\n" + ex.getMessage());
}
}
public Server getServer(int code){
try{
sessionFactory = new Configuration().configure().buildSessionFactory();
logger.info("Obtendo Servidor código " + code + " do banco de dados.");
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Server s = (Server) session.get(Server.class, code);
sessionFactory.close();
logger.info("Servidor obtido com sucesso.");
return s;
}catch (Exception ex){
logger.error("Erro ao obter Servidor com código " + code + ". Motivo:\n" + ex.getMessage());
}
return null;
}
@SuppressWarnings("unchecked")
public List<Server> getServerList(){
try{
logger.info("Obtendo a lista de Servidores do banco de dados.");
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
List<Server> Servers = session.createCriteria(Server.class).list();
sessionFactory.close();
logger.info("Lista de Servidores obtida com sucesso.");
return Servers;
}catch (Exception e){
logger.error("Não foi possível obter a lista de Servidores.\nMotivo: " + e.getMessage());
}
return null;
}
public void update(Server s){
try{
logger.info("Atualizando dados do Servidor: " + s.toString());
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.update(s);
session.getTransaction().commit();
sessionFactory.close();
logger.info("Atualização do Servidor realizada com sucesso.");
}catch (Exception ex){
logger.error("Não foi possível atualizar o Servidor " + s.toString() + ". Motivo:\n" + ex.getMessage());
}
}
public void delete(Server s){
try{
logger.info("Excluindo Servidor: " + s.toString());
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
session.delete(s);
session.getTransaction().commit();
sessionFactory.close();
logger.info("Exclusão do Servidor efetuada com sucesso.");
}catch (Exception ex){
logger.error("Não foi possível excluir o Servidor " + s.toString() + ". Motivo:\n" + ex.getMessage());
}
}
public List<Server> getServerFilter(String name){
try{
logger.info("Obtendo a lista de Servidores do banco de dados.");
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Criteria crit = session.createCriteria(Server.class);
crit.add(Restrictions.like("name", "%"+name+"%"));
List results = crit.list();
sessionFactory.close();
logger.info("Lista de Servidores obtida com sucesso.");
return results;
}catch (Exception e){
logger.error("Não foi possível obter a lista de Servidores.\nMotivo: " + e.getMessage());
}
return null;
}
}