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

Me quede en este error, estoy investigando que podria ser...

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'consultaController': Unsatisfied dependency expressed through field 'agendaDeConsultaService': Error creating bean with name 'agendaDeConsultaService': Unsatisfied dependency expressed through field 'medicoRepository': Error creating bean with name 'medicoRepository' defined in med.voll.api.domain.medico.MedicoRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract med.voll.api.domain.medico.Medico med.voll.api.domain.medico.MedicoRepository.seleccionarMedicoConEspecialidadEnFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime); Reason: Validation failed for query for method public abstract med.voll.api.domain.medico.Medico med.voll.api.domain.medico.MedicoRepository.seleccionarMedicoConEspecialidadEnFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:712) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:692) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:133) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:481) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1397) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:961) ~[spring-beans-6.0.4.jar:6.0.4] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:915) ~[spring-context-6.0.4.jar:6.0.4] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584) ~[spring-context-6.0.4.jar:6.0.4] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.0.2.jar:3.0.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[spring-boot-3.0.2.jar:3.0.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[spring-boot-3.0.2.jar:3.0.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-3.0.2.jar:3.0.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302) ~[spring-boot-3.0.2.jar:3.0.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291) ~[spring-boot-3.0.2.jar:3.0.2] at med.voll.api.ApiApplication.main(ApiApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-3.0.2.jar:3.0.2] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agendaDeConsultaService': Unsatisfied dependency expressed through field 'medicoRepository': Error creating bean with name 'medicoRepository' defined in med.voll.api.domain.medico.MedicoRepository defined in

2 respuestas

Hola Felipe,

Parece que hay un problema con la creación de los beans en tu aplicación Spring Boot. El error UnsatisfiedDependencyException generalmente ocurre cuando Spring no puede resolver una dependencia necesaria para crear un bean.

En tu caso, parece que hay un problema con la creación de los beans 'consultaController', 'agendaDeConsultaService' y 'medicoRepository'. El error también menciona que no se pudo crear una consulta para el método seleccionarMedicoConEspecialidadEnFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime) en tu repositorio MedicoRepository.

Aquí hay algunas cosas que podrías revisar:

  1. Asegúrate de que todas las dependencias necesarias para estos beans estén correctamente configuradas y disponibles. Por ejemplo, si 'consultaController' depende de 'agendaDeConsultaService', entonces 'agendaDeConsultaService' debe estar correctamente configurado y creado antes de que 'consultaController' pueda ser creado.

  2. Verifica si el método seleccionarMedicoConEspecialidadEnFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime) en tu MedicoRepository está correctamente definido. El error indica que la validación falló para la consulta de este método. Tal vez necesites revisar la consulta SQL que estás utilizando en este método.

  3. También podrías revisar si los beans 'consultaController', 'agendaDeConsultaService' y 'medicoRepository' están correctamente anotados con @Controller, @Service y @Repository respectivamente. Estas anotaciones son necesarias para que Spring pueda detectar y crear estos beans automáticamente.

Por ejemplo, si tienes una clase de servicio llamada AgendaDeConsultaService, debería estar anotada con @Service como se muestra a continuación:

@Service
public class AgendaDeConsultaService {
    // tu código aquí
}

Espero que esto te dé algunas pistas sobre cómo solucionar tu problema. Recuerda que estos son solo puntos de partida y podrías necesitar investigar más a fondo dependiendo de tu configuración.

Espero haber ayudado. 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

Tu error posiblemente está en la query del método SeleccionarMedicoConEspecialidadEnFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime), revisa bien que los nombres antes del los " : " coincidan con los que están en tu base de datos y que los valores despues de los " : " coincidan con los que esta en los parametros del metodo.

Me habia pasado algo similar, habia puesto fecha:fecha cuando en realidad era data:fecha porque se llamaba data en la base de datos.

Por otra parte, si te aparece problemas con comparación Boolean con Integer, cambia el 1 por true