1
resposta

Usando o Optional

Ola,

Na realidade sao duas coisas. A primeira seria a pesquisa no banco de dados. Pode ser que nas próximas aulas precise, mas seria necessário apenas instanciar um medido e um paciente?

var paciente = new Medico(dados.getPacienteId());
var medico = new Medico(dados.getMedicoId());

Já nao seria suficiente para fazer o relacionamento para salvar?

Se for para validar se ambos existem no banco de dados, e realmente precise fazer a pesquisa, eu acho que ficaria melhor usar o orElseTrow(). Eu sei que tem N formas de fazer, mas é uma dica de validação para o ID e nao estourar uma exception futuramente.

var paciente = pacienteRepository.findById(dados.getPacienteId())
                    .orElseThrow(() -> new RuntimeException("Paciente não cadastrado."));
1 resposta

Olá Thiago,

Pelo que entendi da sua pergunta, você está se perguntando se é necessário pesquisar no banco de dados para instanciar um médico e um paciente, e se o uso do orElseThrow() seria uma boa prática para validar o ID.

Bem, a resposta para a primeira pergunta depende do que você está tentando fazer. Se você precisa apenas instanciar um objeto médico e um objeto paciente, então não é necessário pesquisar no banco de dados. No entanto, se você precisa salvar esses objetos e relacioná-los no banco de dados, então é necessário pesquisar no banco de dados para garantir que os IDs são válidos.

Quanto ao uso do orElseThrow(), é uma boa prática para validar o ID e evitar exceções futuras. No exemplo que você deu, ele garante que o objeto paciente existe no banco de dados e, caso contrário, lança uma exceção. Isso é útil para evitar erros de referência nula e garantir que o seu código esteja funcionando corretamente.

Espero ter ajudado e bons estudos!