REPLACE INTO com Hibernate?

6 respostas
fernandopaiva

Salve galera…

Como eu faço para executar um comando “REPLACE INTO” do MySQL ??? …Estou usando createSQLQuery() mas ainda não consegui.

Estou tentando assim.

public void alteraVinculaPerfilModuloPermissoes(){
            Session sessao = new RetornaSessaoHibernate().hibernateSession();                         
            sessao.beginTransaction();
            DefaultTableModel tabela = (DefaultTableModel)gridPermissoesPorModulo.getModel();            
            SQLQuery query = sessao.createSQLQuery("REPLACE INTO yperfilmodulo (idperfil, idmodulo, inserir, alterar, consultar, imprimir) "
                                                 + "VALUES (:idperfil, :idmodulo, :inserir, :alterar, :consultar, :imprimir) "
                                                 );              
            Yperfil perfil = new Yperfil();
            perfil.setId(Long.parseLong(codPerfil.getText()));            
            query.setParameter("idperfil", perfil.getId());                                    
            for(int x = 0; x < tabela.getRowCount(); x++){                 
                    Ymodulos modulos = new Ymodulos();                    
                    modulos.setId(Long.valueOf((String)gridPermissoesPorModulo.getValueAt(x, 0)));                                        
                    
                    query.setParameter("idmodulo", modulos.getId());
                    query.setParameter("inserir", gridPermissoesPorModulo.getValueAt(x, 2).toString()); 
                    query.setParameter("alterar", gridPermissoesPorModulo.getValueAt(x, 3).toString()); 
                    query.setParameter("consultar", gridPermissoesPorModulo.getValueAt(x, 4).toString()); 
                    query.setParameter("imprimir", gridPermissoesPorModulo.getValueAt(x, 5).toString());                     
                    query.executeUpdate();                    
            }             
            sessao.getTransaction().commit();                          
    }

Mas ainda não estou tendo resultados. Como faço para executar comandos SQL com Hibernate ?

obrigado.

6 Respostas

diegosantiviago

desculpe minha ignorancia, mas replace into é um update?

fernandopaiva

Opa Diego…firmeza total ?

Sim e Não …kk !!!

REPLACE INTO, faz com que se o registro existir no BD ele atualiza, se não ele insere…saca ?

veja: http://www.vibemidia.com/mysql_replace_melhore_seu_insert_e_update

[]'s

E

o “replace into” não é implementado pelo Hibernate (que eu saiba), tenta usar o createNativeQuery.

fernandopaiva

Afff…com createSQLQuery() não funciona ??? Fazer isso usando createNativeQuery() vou ter que mudar meus imports afffff…!!!

vlw, vou dar uma olhada nisso.

fernandopaiva

Bem, pelo que eu vi ele tem session.saveOrUpdate()…Vou testar. !

obrigado aew

Flavio_machine

Poruqe você não fez a classe ?

Criado 10 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 6
Participantes 4