1
resposta

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.

Boa tarde, estou tomando esse erro ao compilar o projeto:

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-01-03T15:10:00.384-03:00 ERROR 26008 --- [ 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 'consultaRepository': Error creating bean with name 'consultaRepository' defined in med.voll.api.domain.consulta.ConsultaRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); Reason: Failed to create query for method public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); No property 'existsbyMedicoId' found for type 'Consulta' at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1]

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'agendaDeConsultas': Unsatisfied dependency expressed through field 'consultaRepository': Error creating bean with name 'consultaRepository' defined in med.voll.api.domain.consulta.ConsultaRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); Reason: Failed to create query for method public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); No property 'existsbyMedicoId' found for type 'Consulta' at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772) ~[spring-beans-6.1.1.jar:6.1.1] org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769) ~[spring-beans-6.1.1.jar:6.1.1] ... 25 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'consultaRepository' defined in med.voll.api.domain.consulta.ConsultaRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Could not create query for public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); Reason: Failed to create query for method public abstract java.lang.Boolean med.voll.api.domain.consulta.ConsultaRepository.existsbyMedicoIdAndData(java.lang.Long,java.time.LocalDateTime); No property 'existsbyMedicoId' found for type 'Consulta'

1 resposta

Olá! Parece que você está tendo problemas com a criação de um bean no Spring Boot. O erro que você está vendo é causado quando o Spring Boot tenta criar um bean para a classe ConsultaRepository, mas não consegue encontrar um método chamado 'existsbyMedicoId' na classe Consulta.

Pelo que parece, você tem um método chamado 'existsbyMedicoIdAndData' no seu repositório ConsultaRepository, mas o Spring Boot está interpretando isso como se existisse uma propriedade chamada 'existsbyMedicoId' que deveria ser usada para criar uma consulta.

A solução para isso é renomear o método para corresponder ao padrão que o Spring Boot espera. O Spring Data JPA usa o nome do método para criar a consulta, então você precisa seguir o padrão de nomenclatura.

Por exemplo, se você tem um método que verifica se existe uma consulta para um determinado médico e data, você pode nomeá-lo como 'existsByMedicoIdAndData'. Note que a primeira letra após o 'By' deve ser maiúscula. Isso indica ao Spring Data JPA que 'MedicoId' e 'Data' são campos distintos.

Seu método ficaria assim:

public abstract Boolean existsByMedicoIdAndData(java.lang.Long,java.time.LocalDateTime);

Espero que isso resolva o seu problema. Lembre-se de que a nomenclatura correta dos métodos é crucial ao usar o Spring Data JPA. Espero ter ajudado e bons estudos!