Para que el código me funcione tuve que hacer ciertos cambios y no sé si constituyen una buena práctica, pero fué la única forma en que logré que funcione:
En MedicoController:
@PutMapping
@Transactional
public ResponseEntity actualizarMedico(@RequestBody @Valid DatosActualizarMedico datosActualizarMedico) {
Medico medico = medicoRepository.getReferenceById(datosActualizarMedico.id());
medico.actualizarDatos(datosActualizarMedico);
return ResponseEntity.ok(new DatosRespuestaMedico(
medico.getId(),
medico.getNombre(),
medico.getDocumento(),
medico.getDireccion()));
}
En DatosRespuestaMedico:
package med.voll.api.medico;
public record DatosRespuestaMedico(
Long id,
String nombre,
// String email,
// String telefono,
String documento,
med.voll.api.direccion.Direccion direccion
) {
}