Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Sobre o getOne

O getOne ta dando deprecated, como ficaria o atualizar com um findbyid ?

public Topico atualizar(Long id, TopicoRepository topicoRepository) {
        Topico topico = topicoRepository.getOne(id);
        topico.setMensagem(this.mensagem);
        topico.setTitulo(this.titulo);
        return topico;
    }
1 resposta
solução!

Olá! Tudo bem? O método getOne está sendo deprecated porque ele vai lançar uma exceção se ele não conseguir encontrar algum registro pelo Id. Já o método findById vai realizar a busca e retornar um Optional, que é um objeto opcional já que tem a possibilidade de nada ser encontrado. O bom é que o Optional do findById facilita na hora de você fazer o tratamento que você preferir caso o registro não seja encontrado. Com esse outro método o código ficaria assim:

public Topico atualizar(Long id, TopicoRepository topicoRepository) {
    Optional<Topico> optional = topicoRepository.findById(id);

    if (optional.isEmpty()) {
        // Fazer tratamento no caso de erro, podemos lançar exception, retornar uma mensagem de erro ou alguma outra abordagem
        // Nesse exemplo retornarei nulo
        return null;
    }

    // O método get pega o valor armazenado dentro do optional, que pode ou não estar presente, por isso devemos
    // fazer uma verificação antes, ou com o método optional.isEmpty() ou optional.isPresent()
    Topico topico = optional.get();
    topico.setMensagem(this.mensagem);
    topico.setTitulo(this.titulo);
    return topico;
}