Dúvida Hibernate: createQuery e executeUpdate (Resolvido)

3 respostas
ataufo

Pessoal,

estou tentando executar um Update no banco atravez do Hibernate, já testei o SQL no próprio Postgres e funcionou numa boa, entao acho que tem algo errado na execução do DAO.

Segue o método abaixo:

public void atualizaStatus() throws Exception
{
          Session sessao = fabrica.openSession();
          Transaction transacao = sessao.beginTransaction();
          Query q = sessao.createQuery
          ("update Grupo Set status = 'Inativo' where data < (select to_char(current_date, 'DD/MM/YYYY')");
          q.executeUpdate();
          transacao.commit();
          sessao.flush();
          sessao.close();
}

Alguem sabe me ajudar ? Nunca tive que executar um update no Hibernate sem passar um objeto, então estou perdido.

Agradeço qualquer ajuda! Valeu.

3 Respostas

T

Tenta substituir o “sessao.createQuery” por “sessao.createSQLQuery”.

PS. mude sua query para “update Grupo Set status = ‘Inativo’ where data < to_char(current_date, ‘DD/MM/YYYY’)” desse modo ela fica mais limpa.

ataufo

Rapaz, nem foi preciso usar o SQLQuery o problema era realmente esse select sobrando ai que eu nem tinha visto.

Obrigado, problema resolvido.

Axel_MacNamara

ataufo:
Pessoal,

estou tentando executar um Update no banco atravez do Hibernate, já testei o SQL no próprio Postgres e funcionou numa boa, entao acho que tem algo errado na execução do DAO.

Segue o método abaixo:

public void atualizaStatus() throws Exception
{
          Session sessao = fabrica.openSession();
          Transaction transacao = sessao.beginTransaction();
          Query q = sessao.createQuery
          ("update Grupo Set status = 'Inativo' where data &lt; (select to_char(current_date, 'DD/MM/YYYY')");
          q.executeUpdate();
          transacao.commit();
          sessao.flush();
          sessao.close();
}

Alguem sabe me ajudar ? Nunca tive que executar um update no Hibernate sem passar um objeto, então estou perdido.

Agradeço qualquer ajuda! Valeu.

Criado 28 de maio de 2009
Ultima resposta 31 de mai. de 2009
Respostas 3
Participantes 3