Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Código não esta mais compilando

Boa noite, alguem poderia me ajudar com o erro abaixo:

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-05-09T20:29:33.624-03:00 ERROR 91524 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed

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 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.escolherMedicoAleatorioNaData(med.voll.api.domain.medico.Especialidade,java.time.LocalDateTime); Reason: Validation failed for query for method public abstract med.voll.api.domain.medico.Medico med.voll.api.domain.medico.MedicoRepository.escolherMedicoAleatorioNaData(med.voll.api.domain.medico.Especialidade,java.time.LocalDateTime) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:713) ~[spring-beans-6.0.8.jar:6.0.8] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:693) ~[spring-beans-6.0.8.jar:6.0.8] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:133) ~[spring-beans-6.0.8.jar:6.0.8] at

4 respostas

Olá Edilberto, tudo bem?

Pelo erro apresentado, parece que há uma dependência insatisfeita no seu código. Especificamente, há um problema na criação do bean 'consultaController', que depende do bean 'agendaDeConsultas', que por sua vez depende do bean 'medicoRepository'.

O erro parece estar relacionado à criação de uma query na classe 'MedicoRepository', que não está passando na validação. Sugiro que você verifique se a query está correta e se os parâmetros estão sendo passados corretamente.

Além disso, você pode tentar reexecutar a aplicação com o parâmetro 'debug' habilitado, como sugerido no erro, para obter mais informações sobre o problema.

Qualquer coisa envie aqui o código da sua classe MedicoRepository.java

Espero ter ajudado e bons estudos!

Bom dia, Otávio Prado,

Consegui encontrar o erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeo @Entity(name = "Consulta") estava com o C de consulta em minuscula, alterei o mesmo para maiúscula e passou, o que eu não entendi foi o porquê eu tive que mudar, já que nas aulas em momento nenhum isso foi alterado e antes estava compilando.

Segue abaixo as Querys: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Por default o Spring Data JPA usa a estratégia de mapeamento "Snake Case" para converter nomes de entidades e colunas em nomes de tabelas e colunas no banco de dados. Se você tiver uma classe 'Consulta', o nome da tabela no banco de dados será automaticamente convertido para 'consulta'. Se você especificar explicitamente o nome da entidade usando a anotação @Entity(name = "Consulta"), o Spring Data JPA usará o nome especificado em vez de aplicar a conversão.

Show, agora entendi o porquê. Obrigado Otávio Prado, valeu pela ajuda.