Perfeito, professor!
Muito obrigada pela ajuda, funcionou :)
Deixei meu controller assim:
@PostMapping
@Transactional
public ResponseEntity cadastrar(@RequestBody @Valid DadosCadastroMedico dados, UriComponentsBuilder uriComponentsBuilder) {
var medicoJaCadastradoCrm = repository.existsByCrm(dados.crm());
var medicoJaCadastradoEmail = repository.existsByEmail(dados.email());
if (medicoJaCadastradoCrm) {
throw new ValidacaoException("CRM já cadastrado para outro médico");
}
if (medicoJaCadastradoEmail) {
throw new ValidacaoException("E-mail já cadastrado por outro médico");
}
var medico = new Medico(dados);
repository.save(medico);
var uri = uriComponentsBuilder.path("/medicos/{id}").buildAndExpand(medico.getId()).toUri();
return ResponseEntity.created(uri).body(new DadosDetalhamentoMedico(medico));
}
E agora estou tentando fazer retornar uma lista em JSON com todos os erros pra que apareçam juntos (se colocar crm e email já existentes, no caso).
Mas agora essa parte já foi, pelo menos :)