Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

[Duda] Problemas en Dirección con Medico y Paciente

Buenos días quería hacer una consulta estoy en el curso de Spring boot 3 documentar, probar y preparar API pero estoy teniendo problemas al registrar el paciente por la Dirección, si incluyo los atributos de paciente me da un error en el constructor de Medico. no se que hacer debo crear 2 clases de direccion una para medico y una para paciente o como puedo solucionar.

3 respuestas

¡Hola Jose, espero que estés bien!

¿Podría mostrarme tu código por favor?

Entiendo tu dilema al intentar registrar un paciente por la dirección y encontrarte con problemas al incluir los atributos del paciente que generan un error en el constructor del médico. En este caso, crear dos clases de dirección, una para el médico y otra para el paciente, podría ser una solución viable. De esta forma, podrías tener un mayor control sobre los atributos específicos de cada entidad y evitar conflictos al registrar la dirección.

Por ejemplo, podrías tener una clase DirecciónMedico con los atributos específicos para el médico y una clase DirecciónPaciente con los atributos específicos para el paciente. De esta manera, al momento de registrar la dirección, podrías asociarla con la clase correspondiente según el contexto en el que estés trabajando.

Recuerda que la separación de responsabilidades y la claridad en la estructura de tu código son fundamentales para evitar conflictos y facilitar el mantenimiento a largo plazo.

Espero que esta sugerencia te sea de ayuda. ¡Mucho ánimo con tu curso de Spring Boot 3!

Espero haber ayudado y buenos estudios!

package med.voll.api.domain.direccion;

import jakarta.persistence.Embeddable; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor;

@Embeddable @Getter @NoArgsConstructor @AllArgsConstructor public class Direccion { private String calle; private String distrito; private String ciudad; //private String provincia; //private String codigoPostal; //private String urbanizacion; private String numero; private String complemento;

public Direccion(DatosDireccion direccion) {
    this.calle = direccion.calle();
    this.distrito = direccion.distrito();
    this.ciudad = direccion.ciudad();
    this.numero = direccion.numero();
    this.complemento = direccion.complemento();
}

public Direccion actualizarDatos(DatosDireccion direccion) {
    this.calle = direccion.calle();
    this.distrito = direccion.distrito();
    this.ciudad = direccion.ciudad();
    this.numero = direccion.numero();
    this.complemento = direccion.complemento();
    return this;
}

public void atualizarInformacion(DatosActualizacionDireccion direccion) {}

}

package med.voll.api.domain.direccion;

import jakarta.validation.constraints.NotBlank;

public record DatosDireccion( @NotBlank String calle, @NotBlank String distrito, @NotBlank String ciudad, @NotBlank String numero, @NotBlank String complemento ) { }

package med.voll.api.domain.direccion;

import jakarta.validation.constraints.NotBlank;

public record DatosActualizacionDireccion( @NotBlank String calle, @NotBlank String distrito, @NotBlank String ciudad, @NotBlank String numero, @NotBlank String complemento ) { }

JSON MEDICO (Registrar) { "nombre": "Carlos Becerra", "email": "c.becerra@voll.med", "documento": "105498", "telefono": "67668900", "especialidad": "ORTOPEDIA", "direccion": { "calle": "calle 10", "distrito": "distrito 3", "ciudad": "Chone", "numero": "50", "complemento": "K" } }

JSON PACIENTE (Registrar)

{ "nombre": "Anna Perez", "email": "a.perez@mail.com", "documentoIdentidad": "123.456.789-01", "telefono": "66655512", "direccion": { "calle": "las flores", "urbanización": "Mi Querencia", "distrito": "centro", "codigoPostal": "2054", "ciudad": "Carora", "numero": "30", "provincia": "Lara", "complemento": "A" } }

La duda me salta es que el profesor no explica la parte de paciente pero deja planteado como hacerlo y en los video posteriores veo que solo tiene 1 clase de Dirección así que asumi que incluyo todos los campos de ambas entidades en esa clase Dirección

Hola tocayo,

sería mejor que subieras tu código a un repo github para poder clonarlo y en mi local levantar la aplicación para poder ayudarte con tu error esto debido a que las aplicaciones de Spring con Java se hacen mediante diferentes capas que están relacioandas entre diferentes clases por la inyección de dependencias y es por esto que es muy difícil depurar un error solo checando tus Entities