Erro ao excluir objeto - Hibernate

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?

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?