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

Transactional só atualiza primeira propriedade

Estou tentando fazer a rota para o put e no fim somente o primeiro elemento atualiza, json que estou enviando:

{
    "titulo": "Novo titulo",
    "mensagem":"atualizado"
}

resposta que obtenho, tanto a usar o get quando como resposta do put

{
  "id": 3,
  "titulo": "Novo titulo",
  "mensagem": "Novo titulo",
  "dataCriacao": "2019-05-05T20:00:00"
}

função de atualizar no dto de atualização:

    public Topico atualizar(Long id, TopicoRepository topicoRepository) {
        Topico topico = topicoRepository.getById(id);
        topico.setTitulo(this.titulo);
        topico.setMensagem(this.mensagem);
        System.out.println(this.mensagem);
        return topico;
    }

coloquei o print ali só pra ver se estava chegando a mensagem correta, função no controller:

    @PutMapping("/{id}")
    @Transactional
    public ResponseEntity<TopicoDTO> atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoTopicoForm form) {
        Topico topico = form.atualizar(id, topicoRepository);
        return ResponseEntity.ok(new TopicoDTO(topico));
    }

import que esta na controller import org.springframework.transaction.annotation.Transactional;

Resolvido

2 respostas
solução!

Oi Kaique,

Conseguiu resolver? qual era o problema?

quando fui debugando classe a classe, em dos construtores eu passei, this.titulo para a mensagem era só isso.