Bom dia pessoal, estou tendo um problema para encerrar as consultas do hibernate, como o sistema faz varias consultas está travando o mysql, quando faço uma lista eu consigo encerrar a sessão, mas quando é uma consulta com chave estrangeira não funciona segue abaixo os códigos se alguém tiver uma sugestão fico grato.
exemplo da lista
public List listarEstoque() {
Session sessao = null;
try{
sessao = HibernateUtil.getSessionFactory().openSession();
sessao.beginTransaction();
Query consulta = sessao.createQuery(“from Estoque where status=‘ativo’ order by id desc”);
return consulta.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
sessao.close();
}
return null;
}
nesse caso acima está funcionando ok
public Estoque procurarEstoquePorProduto2(Integer produtos) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
sessao.beginTransaction();
Query consulta = sessao.createQuery(“from Estoque where produtos=? and status=‘ativo’”);
consulta.setInteger(0, produtos);
return (Estoque) consulta.uniqueResult();
}
se aplicar o mesmo código para encerrar a sessão ele diz na consulta que a sessão está fechada, lembrando que esse campo produtos é uma chave estrangeira, fiz o mesmo com a consulta sem chave estrangeira e funcionou.