Java.lang.IllegalStateException: Transaction not active
6 respostas
M
michaelgerson
Meu problema:
nota=daoNota.save(nota);for(inti=0;i<notasMaterias.size();i++){notaMaterial=notasMaterias.get(i);notaMaterial.setNotaFiscal(nota);empenhoMateriall.setQuantEntregue((empenhoMateriall.getQuantidade()-(notaMaterial.getQuantidade())));dao.save(notaMaterial);empenhoMateriall=notaMaterial.getEmpenhoMaterial();daoEmpenhoMaterial.update(empenhoMateriall);}init();msg="Nota Fiscal cadastrada com sucesso!!";return"/pages/notaFiscal/pesquisarNotaFiscal.jsf?faces-redirect=true";
Provável que você não renove a transação após esta linha
dao.save(notaMaterial);
M
michaelgerson
Como faço para renovar!
Obrigado!!
drsmachado
Depende de como implementou o método.
Se está usando Session, provável que em algum lugar tenha chamado o commit.
Vai precisar reabrir a transaction, invocando o método beginTransaction novamente.
Fica algo como abaixo
Session s = null;
Transaction t = null;
try {
s = HibernateSession.instance().getSessionFactory().openSession();
t = s.beginTransaction();//Aqui você renova a transaction
...
...
} finally {
t.commit();
s.close();
}
Só não estou levando em consideração boas práticas.