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

O autor ficou nulo no banco de dados durante o cadastro de um tópico?

Quando o tópico está sendo salvo no repository através do construtor abaixo, ocorre uma conversão de um @Form para @Entity. Como o autor está sendo tratado durante este processo? Ele é salvo como nulo no banco de dados?

Vale ressaltar que o autor é uma propriedade anotada como @ManyToOne, dentro de tópico.

Construtor

public Topico(String titulo, String mensagem, Curso curso) {
        this.titulo = titulo;
        this.mensagem = mensagem;
        this.curso = curso;
    }

Conversão

public Topico converter(CursoRepository cursoRepository) {
        Curso curso = cursoRepository.findByNome(nomeCurso);
        return new Topico(titulo, mensagem, curso);
    }

Salvo em

        @PostMapping
    @Transactional
    @CacheEvict(value = "listaDeTopicos", allEntries = true)
    public ResponseEntity<TopicoDto> cadastrar(@RequestBody @Valid TopicoForm form, UriComponentsBuilder uriBuilder) {
        Topico topico = form.converter(cursoRepository);
        topicoRepository.save(topico);

        URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(topico.getId()).toUri();
        return ResponseEntity.created(uri).body(new TopicoDto(topico));
    }
2 respostas

Oi Pedro,

Está sendo salvo como null mesmo, pois a parte de segurança será vista no segundo treinamento, onde será mostrado como recuperar o usuario logado.

Bons estudos!

solução!

Consegui resolver, postei a solução aqui -> https://cursos.alura.com.br/forum/topico-autor-do-topico-151563