Para realizar a escolha de um médico aleatório, a query proposta é essa:
@Query("""
select m from Medico m
where
m.ativo = 1
and
m.especialidade = :especialidade
and
m.id not in(
select c.medico.id from Consulta c
where
c.data = :data
)
order by rand()
limit 1
""")
Estou tendo problemas, pois as duas últimas linhas (order by rand e limit) não compilam. Em ambas, o IDE avisa que esperava algo diferente do que foi escrito:
No fim das contas, consegui fazer as coisas funcionarem rescrevendo a query com SQL e utilizando o parâmetro nativeQuery na anotação. Porém, eu queria entender por que no vídeo da aula funcionou normalmente com JPQL. Aqui, essas duas últimas linhas não dão certo de jeito nenhum seguindo o mesmo modelo da aula.