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

Erro ao executar aplicação após configurar para tornar publica o swagger

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'consultaController': Unsatisfied dependency expressed through field 'agendaDeConsultas': 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.existsByMedicoIdAndDataAndMotivoCancelamentoIsNull(java.lang.Long,java.time.LocalDateTime); Reason: Failed to create query for method public abstract java.lang.Boolean med.voll.API.domain.consulta.ConsultaRepository.existsByMedicoIdAndDataAndMotivoCancelamentoIsNull(java.lang.Long,java.time.LocalDateTime); No property 'cancelamento' found for type 'String'; Traversed path: Consulta.motivo

4 respostas

Oi!

Seu método existsByMedicoIdAndDataAndMotivoCancelamentoIsNull da interface ConsultaRepository está com erro. Manda aqui o código da sua interface e também da classe Consulta

Olá Rodrigo, segue o código.

public interface ConsultaRepository extends JpaRepository<Consulta,Long> {

Boolean existsByPacienteIdAndDataBetween(Long idPaciente, LocalDateTime primeiroHorario, LocalDateTime ultimoHorario);

   Boolean existsByMedicoIdAndDataAndMotivoCancelamentoIsNull(Long idMedico, LocalDateTime data);

}

@Table(name = "consultas") @Entity(name = "Consulta") @AllArgsConstructor @NoArgsConstructor @Getter @EqualsAndHashCode(of = "id") public class Consulta { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "medico_id")//coluna da tabela Consulta
//fazendo referencia com a coluna id da tabela medico
private Medico medico;//é relacionamento com as outras entidates Medico

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "paciente_id")//coluna da tabela Consulta fazendo refencia
//com a coluna id da tabela Paciente
private Paciente paciente;//Aqui é feito um relacionamento com a entidade Paciente

private LocalDateTime data;

private String motivo;

public Consulta(Object id, Medico medico, Paciente paciente, LocalDateTime data) {
}
public void cancelar(String motivo) {
    this.motivo = motivo;
}

}

solução!

Na sua classe Consulta o atributo se chama motivo e nao motivoCancelamento.

Altere o método no repository então para existsByMedicoIdAndDataAndMotivoIsNull

Muito Obrigado Rodrigo, resolvido!