Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Campo ativo não é alterado na tabela

Boa tarde, Fiz o método de exclusão lógica igual ao demonstrado na aula (apenas troquei o nome do método p/ desativar no lugar de excluir):

    public void desativar() {
        this.ativo = false;
    }

A chamada no Controller

   @DeleteMapping("/{id}")
    public void excluir(@PathVariable Long id) {
        //para exclusão física, utilizamos o deleteById
        //repository.deleteById(id);
        var medico = repository.getReferenceById(id);
        medico.desativar();
    }

Porém apesar do Insomnia retornar o código 200 ok, ele não altera o atributo ativar p/ 0 na tabela, estou usando o mysql 8 Reparei que a instrução sql update não é mostrada no terminal, apenas a instrução select. Coloquei no construtor a chamada do método save, após a chamada do método desabilitar:

@DeleteMapping("/{id}")
    public void excluir(@PathVariable Long id) {
        //para exclusão física, utilizamos o deleteById
        //repository.deleteById(id);
        var medico = repository.getReferenceById(id);
        medico.desativar();
        repository.save(medico);
    }

Só assim o atributo foi alterado na tabela, alguém saberia dizer o porque?

2 respostas
solução!

Oi Álvaro!

Faltou anotar o método no controller com @Transactional.

Perfeito, funcionou!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software