Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Erro na compilação ao criar o bean no atributo consultaController.

Prezados, Bom dia.

Meu git: https://github.com/Adelmo2/med.voll.api.git

Tentei realizar a função "Cancela Consulta" de acordo com a sugestão do Professo Rodrigo.

Estou com erro na compilação com o erro:
Error creating bean with name 'consultaController': Unsatisfied dependency expressed through field 'agenda': Error creating bean with name 'agendaDeConsultas': Unsatisfied

Alguém poderia dar alguma dica?

Mais detalhes:
2026-06-16T07:50:36.346-03:00 INFO 13412 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
2026-06-16T07:50:36.346-03:00 INFO 13412 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2026-06-16T07:50:36.366-03:00 INFO 13412 --- [ restartedMain] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2026-06-16T07:50:36.390-03:00 ERROR 13412 --- [ 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 boolean med.voll.api.domain.consulta.ConsultaRepository.existsByMedicoIdAndDataAndDataMotivoCancelamentoIsNull(java.lang.Long,java.time.LocalDateTime); Reason: Failed to create query for method public abstract boolean med.voll.api.domain.consulta.ConsultaRepository.existsByMedicoIdAndDataAndDataMotivoCancelamentoIsNull(java.lang.Long,java.time.LocalDateTime); No property 'motivoCancelamento' found for type 'LocalDateTime' Traversed path: Consulta.data.

1 resposta

Olá Adelmo,
Pelo erro apresentado, o problema não parece estar no Controller ou na classe AgendaDeConsultas, mas sim em um método declarado no seu ConsultaRepository. A mensagem mais importante é:

existsByMedicoIdAndDataAndDataMotivoCancelamentoIsNull

O Spring Data JPA utiliza o nome dos métodos para montar consultas automaticamente.
Nesse caso, ele está interpretando que existe uma propriedade chamada motivoCancelamento dentro do atributo data.
Como o atributo data é do tipo LocalDateTime, o Spring tenta encontrar algo equivalente a:

consulta.getData().getMotivoCancelamento()

Como LocalDateTime não possui esse atributo, a criação do bean do repositório falha e, consequentemente, todos os componentes que dependem dele também deixam de ser carregados.
Provavelmente a entidade Consulta possui atributos semelhantes a estes:

private LocalDateTime data;
private MotivoCancelamento motivoCancelamento;

Nesse cenário, o método do repositório deveria ser declarado como:

boolean existsByMedicoIdAndDataAndMotivoCancelamentoIsNull(
    Long medicoId,
    LocalDateTime data
);

Observe que foi removido o segundo Data do nome do método.
A nomenclatura precisa refletir exatamente os atributos existentes na entidade.
Como dica extra, quando encontrar erros longos de criação de beans no Spring Boot, tente localizar no stack trace a primeira ocorrência de mensagens como "Could not create query for method" ou "Caused by".
Geralmente é nesse ponto que está a causa real do problema.
Com o tempo você perceberá que muitos erros aparentam estar no Controller, mas na verdade começam em uma camada inferior, como Repository ou Service.
Você está seguindo um caminho muito importante para quem trabalha com Spring: aprender a interpretar stack traces.
Essa habilidade economiza horas de depuração e faz muita diferença na evolução como desenvolvedor.
Faça os testes ai e me envia um feedback.
Bons estudos.