Pessoal, estou tentando excluir meus objetos e aparece esse ero:
Erro ao excluir a instituição: 10 Could not execute JDBC batch update
Codigo da action:
[code]if(acao.equals(“excluir”))
{
int id = Integer.parseInt(request.getParameter(“id”));
GenericDAO instituicaoDao = new GenericDAO(Instituicao.class);
instituicao = (Instituicao) instituicaoDao.carregarPeloId(id);
try
{
dao.excluir(instituicao);
retorno = "sucesso";
msg = " A instituição foi excluída com sucesso no sistema!";
}
catch(Exception e)
{
e.printStackTrace();
retorno = "erro";
msg = "Erro ao excluir a instituição: " + instituicao.getId() + e.getMessage().toString();
}
}[/code]
DAO:
[code]public void excluir(Object obj) throws HibernateException
{
Transaction tx;
tx = null;
session = SessionFactoryUtil.getInstance().openSession();
tx = session.beginTransaction();
session.delete(obj);
tx.commit();
HibernateException e = null;
if(tx != null && tx.isActive())
{
try
{
tx.rollback();
}
catch(HibernateException e1)
{
e1.printStackTrace();
}
throw e;
}
session.close();
}[/code]
Nao sei porque nao esta exlcuindo.
Se alguem puder me ajudar, agradeço.
manda a stackTrace inteira.
Às vezes isso acontece porque a exclusão do registro violaria a integridade referencial da tabela. Mas, como disse o georgesq , é preciso consultar o stack trace completo para ter certeza.
Já dei uma olhada na tabela e nesse caso nao acontece isso. Essa tabela que estou referenciando nao tem ligação com nenhuma outra.
Só aparece na tela esse erro pra mim. Como poderei mostrar o stack trace completo?
ksi
Março 15, 2011, 4:51pm
#5
Dê uma olhada no log de saída do console do servidor.
Caso tiver dificuldades para isso, você pode carregar tudo na mensagem. Isso concatena todo o stack trace na variável, mas isso não é recomendável. Use somente se não conseguir a primeira alternativa.
StringBuilder sb = new StringBuilder(1234);
int k = 0;
for (StackTraceElement es : e.getStackTrace()) {
sb.append(es.toString());
sb.append("\r\n");
if (k++ == 20) {
break;
}
}
msg = sb.toString();
Stack Trace completa:
Erro ao excluir a instituição: org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:146) org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298) org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) catalogo.dao.GenericDAO.excluir(GenericDAO.java:79) catalogo.controle.actions.ManterInstituicaoAction.execute(ManterInstituicaoAction.java:100) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) catalogo.controle.seguranca.FiltroControleAcesso.doFilter(FiltroControleAcesso.java:76)
Alguem sabe o que pode ser?