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

[Duda] el constructor

this.direccion = new Direccion(datosRegistroMedico.direccion()); The method direccion() is undefined for the type DatosRegistroMedico la sugerencia de eclipse es que haga un metodo en datosRegistroMedico

public DatosDireccion direccion() { // TODO Auto-generated method stub return null; }

pero el profe dice que va en direccion pero lo armo en direccion y me da error

nose si se entiende el problema?

aca dejo el codigo:

CLASE MEDICO

package med.voll.api.medico;

import jakarta.persistence.Embedded; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import lombok.*; import lombok.EqualsAndHashCode; import med.voll.api.direccion.Direccion;

@Table(name = "medicos") @Entity(name = "Medico") @Getter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(of = "id") public class Medico {

public Medico(DatosRegistroMedico datosRegistroMedico) {
    this.nombre = datosRegistroMedico.nombre();
    this.email = datosRegistroMedico.email();
    this.documento = datosRegistroMedico.documento();
    this.especialidad = datosRegistroMedico.especialidad();
    this.direccion = new Direccion(datosRegistroMedico.direccion());
    
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)	
private Long id;
private String nombre;
private String email;
private String documento;
@Enumerated(EnumType.STRING)	
private Especialidad especialidad;
@Embedded
private Direccion direccion;

}

CLASE DIRECCION: package med.voll.api.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 numero;
private String complemento;
private String distrito;
private String ciudad;

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

}

CLASE DATOSREGISTROMEDICO:

package med.voll.api.medico;

import med.voll.api.direccion.DatosDireccion;

public record DatosRegistroMedico(String nombre, String email, String documento, Especialidad especialidad) {

}

3 respuestas

todavia sigo esperando la respuesta de alguien.........

Hola Matías,

Por lo que veo, estás intentando crear una nueva instancia de Direccion en tu clase Medico, pasando un objeto de tipo DatosRegistroMedico a través del método direccion(). Sin embargo, parece que este método no está definido en la clase DatosRegistroMedico, que es la causa del error.

La sugerencia indica que necesitas definir el método direccion() en la clase DatosRegistroMedico porque este método debería devolver un objeto de tipo DatosDireccion (no null), que es lo que espera el constructor de la clase Direccion.

Espero que esto te ayude a resolver. La programación es un proceso de prueba y error...

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Matías,

Lo que puedo ver es que en tu clase de DatosRegistroMedico te hace falta pasarle el parámetro DatosDireccion direccion para que lo pueda leer: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Espero te sirva,

Saludos