Hola en la actividad segui todo lo dicho por el instructor pero salta este error a la hora de levantar la aplicacion, creo que marca un error en la consulta de medicoRepository pero lo copie igual del repositorio git de la clase y aun asi sigue el error
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'consultaController': Unsatisfied dependency expressed through field 'agendaConsultaService': Error creating bean with name 'agendaConsultaService': 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.seleccionarMedicoEspecialidadFecha(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.seleccionarMedicoEspecialidadFecha(med.voll.api.domain.medico.Especialidad,java.time.LocalDateTime)
this may indicate a semantic (user query) problem or a bug in the parser [select m from Medico m
where m.activo= 1
and
m.especialidad=:especialidad
and
m.id not in(
select c.medico.id from Consulta c
where
c.fecha=:fecha
)
order by rand()
limit 1
]
medicoRepository
package med.voll.api.domain.medico;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
@Repository
public interface MedicoRepository extends JpaRepository<Medico, Long> {
Page<Medico> findByActivoTrue(Pageable paginacion);
@Query("""
select m from Medico m
where m.activo= 1
and
m.especialidad=:especialidad
and
m.id not in(
select c.medico.id from Consulta c
where
c.fecha=:fecha
)
order by rand()
limit 1
""")
Medico seleccionarMedicoEspecialidadFecha(Especialidad especialidad, LocalDateTime fecha);
@Query("""
select m.activo
from Medico m
where m.id=:idMedico
""")
Boolean findActivoById(Long idMedico);
}