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

Conversão entidade medico

Olá, espero que estejam bem!

No finalzinho da aula me surgiu uma duvida: o método save, cria um objeto com base no parâmetro recebido. Isso me lembrou um endpoint que fiz um tempo atrás

  @PostMapping("/cadastrar")
        public ResponseEntity<MedicoModel> postMedico(@Valid @RequestBody MedicoModel med) {

            return  uS.cadastrarMedico(medico)
                .map(resposta -> ResponseEntity.status(HttpStatus.CREATED).body(resposta))
                .orElse(ResponseEntity.status(HttpStatus.BAD_REQUEST).build());

        }

.... SERVICE

@Autowired
    private MedicoRepository medicoRepository;

    public Optional<MedicoModel> cadastrarMedico(MedicoModel medico) {

        if (medicoRepository.findByEmail(medico.getEmail()).isPresent())
            return Optional.empty();

        medico.setSenha(criptografarSenha(medico.getSenha()));

        return Optional.of(medicoRepository.save(medico));

    }

Por que será eu não precisei dar new em Medico para ter um registro de medico no banco?

Obrigada <3

1 resposta
solução!

opa boa noite, tu não precisou dar um new medico porque vc já está recebecendo esse médico por parametro. Quando vc usa a anotação @RequestBody o java automaticamente já faz essa instancia pra vc, converter um objeto JSON em Java, no caso então quando tu usa essa anotação, por de baixo dos panos, basicamente já está sendo feito o new medico e na sua classe de serviço, vc recebe esse objeto por parametro e salva no banco.