Olá, gostaria de sugerir uma melhoria para o código exemplificado.
O fato de receber um objeto do tipo Record no Controller e termos também um Classe JPA com os mesmos campos causa uma repetição de código que, a longo prazo, causaria uma dificuldade na manutenção do código.
Para evitar esse problema, posso receber diretamente a classe "Medico" em vez de criar um Record com os mesmos campos:
@PostMapping
public void cadastrar(@RequestBody **Medico** dados) {
repository.save(dados);
}
Importante notar que, recebendo diretamente a Classe JPA "Medico" não é necessário realizar a conversão de um Record para Classe JPA. Talvez seja necessário melhorar o mapeamento dos campos utilizando o @JsonProperty, mas teria apenas 1 local para dar manutenção. Outro ponto importante é que isso não é regra, existem casos que realmente é necessário receber um Record, pois possibilita receber dados de uma forma customizada e trata-los antes de persistir no banco de dados.
Me corrijam se estiver errado por favor, pois entendo que é um bom padrão utilizar dessa forma, mas me parece que pode causar mais trabalho conforme o projeto cresce.