1
resposta

[Projeto] [Java] Problema com Java em API

Alguém poderia me ajudar com este erro? Já quebrei a cabeça, porém, não encontro solucão

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-10-01T23:09:15.487-03:00 ERROR 9152 --- [  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 java.lang.Boolean med.voll.api.domain.medico.MedicoRepository.findAtivoById(java.lang.Long); Reason: Validation failed for query for method public abstract java.lang.Boolean med.voll.api.domain.medico.MedicoRepository.findAtivoById(java.lang.Long)
1 resposta

Olá, Alex! Tudo bem?

Parece que o problema está relacionado à criação de um bean no Spring Boot, especificamente com o 'medicoRepository'. O erro indica que há uma insatisfação de dependência ao tentar criar o bean 'medicoRepository'. Isso pode ser causado por um erro na consulta que você está tentando executar através deste repositório.

A mensagem de erro menciona:

Could not create query for public abstract java.lang.Boolean med.voll.api.domain.medico.MedicoRepository.findAtivoById(java.lang.Long); Reason: Validation failed for query for method public abstract java.lang.Boolean med.voll.api.domain.medico.MedicoRepository.findAtivoById(java.lang.Long)

Isso sugere que a consulta 'findAtivoById' em 'medicoRepository' está falhando na validação. Você poderia verificar se a consulta está correta? Uma possibilidade é que algum campo que você está tentando consultar pode não existir ou pode haver algum erro de sintaxe na consulta.

Como exemplo, suponha que você tenha a seguinte consulta:

@Query("SELECT m FROM Medico m WHERE m.id = :id AND m.ativo = true")
Boolean findAtivoById(@Param("id") Long id);

Você precisa se certificar de que 'id' e 'ativo' são campos válidos na sua entidade 'Medico'. Além disso, a consulta deve estar correta de acordo com a sintaxe JPQL.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.