Hibernate - Problemas ao inserir dados em um banco oracle

0 respostas
lenes

tenho a seguinte funçao para receber e executar um comando sql em um banco oracle...
mas estou tendo problemas, quando rodo o sistema em modo debug tudo ocorre normalmente, os dados sao inseridos na tabela corretamente.
mas quando coloco o sistema para rodar normalmente os dados nao sao inseridos de forma alguma no banco...

a variavel intExecutouSQL = HibernateUtil.openSession().createSQLQuery(strSQL).executeUpdate();
recebe 1.. ou seja TRUE, dizendo que o dado foi inserido no banco mas na verdade nao foi
mas nao sei.. isso pode ser algum problema com o oracle.. commit ou algo assim

alguem ai ja passou pelo mesmo problema?

private static void executaSQL(DadoAReplicar objDadoAReplicar, int intTempoEsperaEntreSQL, int intNumeroTentativas) throws HibernateUtilException, CarregarEsquemaException {
        int intSessao = 0;
        int intExecutouSQL;
        int intTentativas = 0;
        String strSQL;
        try {
            intSessao = HibernateUtil.newSession();
        } catch (Exception ex) {
            log.debug("Não foi possível criar uma sessão " + ex.getMessage());
        }
        try {
            HibernateUtil.beginTransactionSession(intSessao);
            /* Tenta executar o sql */
            strSQL = objDadoAReplicar.getSql();
            strSQL = formataSQL(strSQL);
            while (true) {
                try
                {
                    System.out.println("SQL a executar " + strSQL);
                    intExecutouSQL = HibernateUtil.openSession().createSQLQuery(strSQL).executeUpdate();
                    System.out.println("Executei o hibernate Util " + intExecutouSQL);

                    if (intExecutouSQL == 1) {
                        HibernateUtil.commitSession(intSessao);
                        return;
                    }
                }
                catch(Exception ex)
                {
                    HibernateUtil.rollbackSession(intSessao);
                    System.out.println("Erro ao executar sql no banco "+ex.getMessage());
                }
                ++intTentativas;
                if (intTentativas == intNumeroTentativas) {
                    if(alterarStatusEsquema(objDadoAReplicar.getEsquema()) == false)
                    {
                        log.debug("Não foi possivel alterar Status do esquema " + objDadoAReplicar.getEsquema());
                        throw new CarregarEsquemaException("Impossível atualizar o status do esquema " + objDadoAReplicar.getEsquema());
                    }
                    log.debug("Não foi possível executar SQL numero de tentativas excedido.");
                    return;
                }
                try {
                    Thread.sleep(intTempoEsperaEntreSQL);
                } catch (Exception ex) {
                    log.error("Erro ao executar o SQL. Verifique ");
                }
            }
        } finally {

            HibernateUtil.endSession(intSessao);
        }
Criado 5 de agosto de 2010
Respostas 0
Participantes 1