Delete hql

4 respostas
D

pessoal queria saber como eu faco uma query com delete no hql,no meu caso eu faco uma funcao void removeObjeto()

public void removeObjeto(int id)
{
    String query = "from objeto" +
                          " where id = :id ";
                                             
            getSession().createQuery(query).setParameter("id",id);
}

depois daí como faco pra deletar???

4 Respostas

B

Nesse caso eu acho melhor usar o session.delete(objeto), mas em hql ficaria:

public void removeObjeto(int id)
 {
     String query = "delete objeto o" +
                           " where o.id = :id ";
                                              
             getSession().createQuery(query).setParameter("id",id);
 }
D

ja fiz desse jeito e nao adiantou, e tb nao entendi onde entraria o session.delete(objeto)?

B

O session delete substituiria essa sua query.
Ex:

public void delete(Object objeto){
        session = manager.getSession();
        session.getTransaction().begin();
        session.delete(objeto);
        session.flush();
        session.getTransaction().commit();
}

Tu só precisa pegar a session do hibernate pra conseguir fazer isso…

R

Pessoal,

Já ocorreu este problema com alguém?

Estou tentando executar o comando:

getSession().createQuery(" delete br.com.ricardo.beans.MyObjeto ");

O erro é o seguinte:

org.hibernate.hql.QueryExecutionRequestException: Not supported for DML operations

[]'s

Criado 31 de julho de 2007
Ultima resposta 21 de mai. de 2009
Respostas 4
Participantes 3