Quando tento excluir uma tabela que tem “filhos” relacionados é lançado o erro:
Grave: Servlet.service() for servlet [Faces Servlet] in context with path [/sgp] threw exception
java.lang.IllegalStateException: Transaction not active
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:103)
at Util.JPAFilter.doFilter(JPAFilter.java:42)
Só que não consigo capturar com catch.
Alguém pode me ajudar?
Segue abaixo a procedure:
public void excluirVisitante() {
if (this.visitante.getId() != 0) {
try {
EntityManager manager = this.getEntityManager();
VisitanteRepositorio repositorio = new VisitanteRepositorio(manager);
repositorio.remove(this.visitante.getId());
FacesMessage mensagem = new FacesMessage ("Ok, Visitante excluído!");
mensagem.setSeverity(FacesMessage.SEVERITY_INFO);
FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
} catch (Exception e) {
FacesMessage mensagem = new FacesMessage ("Erro ao Excluir Visitante!");
mensagem.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
}
} else {
FacesMessage mensagem = new FacesMessage ("Selecione um registro antes!");
mensagem.setSeverity(FacesMessage.SEVERITY_WARN);
FacesContext.getCurrentInstance().addMessage("formCadastroVisitante:painelPrincipal", mensagem);
}
}