Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida depois de implementar o cancelamento de consulta

2023-04-26T09:12:50.130-03:00  WARN 4972 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1054, SQLState: 42S22
2023-04-26T09:12:50.130-03:00 ERROR 4972 --- [nio-8080-exec-8] o.h.engine.jdbc.spi.SqlExceptionHelper   : Unknown column 'c1_0.motivo_cancelamento' in 'where clause'
2023-04-26T09:12:50.133-03:00  WARN 4972 --- [nio-8080-exec-8] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [select c1_0.id from consultas c1_0 where c1_0.medico_id=? and c1_0.data=? and c1_0.motivo_cancelamento is null limit ?]; SQL [n/a]]

parece que ele busca pela coluna motivoCancelamento e não a encontra, mas depois de rodar minha migration, pode-se ver que o campo já existe, fiquei sem entender essa!

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMinha migration se encontra assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeE aqui segue o trecho que está apontando erro:

@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
                and
                c.motivoCancelamento is null
             )
             order by rand()
             limit 1
            """)
    Medico escolherMedicoAleatorioLivreNaData(Especialidade especialidade, LocalDateTime data);
1 resposta
solução!

Eu pesquisei que o problema está em como eu defini o campo da tabela consultas, no caso o "motivoCancelamento", eu deveria ter evitado o camel case e ter escrito assim: motivo_cancelamento. Então eu executei a seguinta migration

ALTER TABLE consultas CHANGE motivoCancelamento motivo_cancelamento varchar(100) not null;