Boa noite pessoal! Já apareci por aqui nestes dias com uma dúvida um tanto parecida, mas, era num projeto um pouco diferente mas, seguindo a mesma lógica. Ao criar o método "escolherMedicoAleatorioLivreNaData" e, anotá-lo com o @Query, meu projeto não está rodando mais, e, apresenta o seguinte mensagem no console: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'consultaController': Unsatisfied dependency expressed through field 'agenda': Error creating bean with name 'agendaDeConsultas': Unsatisfied dependency expressed through field 'medicoRepository': Error creating bean with name 'medicoRepository' defined in br.com.med.voll.clinica.api_rest.domain.medicos.MedicoRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract br.com.med.voll.clinica.api_rest.domain.medicos.MedicoEntity br.com.med.voll.clinica.api_rest.domain.medicos.MedicoRepository.escolherMedicoAleatorioLivreNaData(br.com.med.voll.clinica.api_rest.domain.medicos.Especialidade,java.time.LocalDateTime); Reason: Validation failed for query for method public abstract br.com.med.voll.clinica.api_rest.domain.medicos.MedicoEntity br.com.med.voll.clinica.api_rest.domain.medicos.MedicoRepository.escolherMedicoAleatorioLivreNaData(br.com.med.voll.clinica.api_rest.domain.medic``os.Especialidade,java.time.LocalDateTime)
package br.com.med.voll.clinica.api_rest.domain.medicos;
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 java.time.LocalDateTime;
public interface MedicoRepository extends JpaRepository<MedicoEntity, Long> { Page findAllByAtivoTrue(Pageable paginacao);
@Query("""
select m from MedicoEntity m
where
m.ativo = true
and
m.especialidade = :especialidade
and
m.id not in(
select c.medico.id from ConsultaEntity c
where
c.data = :data
)
order by rand()
limit 1
""")
MedicoEntity escolherMedicoAleatorioLivreNaData(Especialidade especialidade, LocalDateTime data);
}