Metodo Delete não funciona

3 respostas
EHS

Eu tenho uma tabela usuario, mas essa tabela só vai poder ter um registro, então toda vez que vou salvar um novo registro
eu quero apagar os registros atuais, mas não estou conseguindo, pois toda vez salva um novo e não apaga o que tem na tabela.
Abaixo os códigos

usuarioDAO
public void inserir(final Usuario usuario) {
        deleteAll();
        session = hibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.save(usuario);
        session.flush();
        session.getTransaction().commit();
        session.close();
    }

    public void deleteAll() {
        session = hibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        session.createQuery("delete from Usuario");
        session.flush();
        session.getTransaction().commit();
        session.close();
    }
usuarioController
public void salvar() {
        usuarioDAO = new UsuarioDAO();
        usuarioDAO.inserir(usuario);
        usuarioDAO.deleteAll();
        usuario = new Usuario();
        preencherTabela();
    }

3 Respostas

rafadalosto

Olá colega, vamos ver se posso te ajudar.

Está dando algum erro ou simplesmente não da nada?

Em SQL o comando correto seria

DELETE * FROM USUARIO

Não conheço muito o Hibernate mas não esta faltando o * na query?

Att.

God_of_Java

flush ? nao nao, da executeUpdate na session amigao =]

EHS

Com o Hibernate não precisa do * e não da erro nenhum, simplesmente não funciona.
God_of_JAva, eu tenho outro metodo delete, onde é passado parametro e ele funciona normal com flush,
mas tentei igual colocar session.executeUpdate(); mas ele não reconhece esse comando.

Criado 1 de março de 2011
Ultima resposta 2 de mar. de 2011
Respostas 3
Participantes 3