UPDATE usando class SQL não funciona
23/08/2016 20:01
0
Pessoal,

to com um problema pra atualizar uma tabela usando a classe SQL. Preciso pegar alguns campos vindo do formulário e atualizá-los. No entanto acredito que o update não está funcionando. Alguém pode ajudar? Desde já agradeço
?@Transactional
    def atualizaStatus(Atividade atividadeInstance){
        println "Entering Action ${actionUri}"
            try {
? ? ? ? ?//pegando os valores do params
                      def descricoes = params.list("descricao")
                      def observacao = params.list("observacao")
                      def situacao = params.list("situacao")
                      def ids = params.list("id")
                       
                      //pegar o indice
                      def listaaa = params.list("atividadeInstance")
                      
                        
                        for (i in 0..(listaaa.size())) {
                           //cria uma conexão usando a classe SQL
                            def sql = new Sql(dataSource) 
? ? ? ? ? ?//atualiza o BD 
                            if (sql.execute('update atividade set descricao = :desc, observacao = :obs, situacao = :status where id = :ids',[desc:descricoes[i],obs:observacao[i], status:situacao[i], id: new Long(ids[i])])){
                            //fecha a conexao
                            sql.close()    
                            }
                            
                         
                        }
                      
                        
                        flash.message = "atividade avaliada com suscesso"
                        redirect action: 'index' //ou qualquer outra forma que estiver usando.
           ? ? return    
        } catch(ex) {
            log.error(ex.message, ex)
            response.status = 500 //Erro interno do servidor
            render view:'paginaAvaliacao', model: [atividadeInstance: atividadeInstance] //Retorna para o formulário com os erros.
            return
        }
    }


usei a mesma instrução SQL no PGAdmin e funcionou
Tags: Grails, Class SQL, sql.executeQuery, not persist, doesn't work sql class grails


0
Oi Bruno,

primeira coisa é verificar se o datasource de fato está sendo injetado na sua classe: pelo que vi, creio que sim.

Segundo ponto é que você tem logo abaixo um catch que pega qualquer exceção. Será que não está ocorrendo algum erro e, com isto, o processamento não esteja sendo finalizado?



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto