Olá, pessoas, tudo bem? Sigo no meu sofrimento diário de aprender Spring (kkkkkk), estou com um erro chato há dias e simplesmente não sei mais onde posso debugar
O erro em questão é:
Specified result type [boolean] did not match Query selection type [med.voll.api.domain.patient.Patient] - multiple selections: use Tuple or array
Depois de horas debugando, eu vi que provavelmente o erro vem de uma query que era pra retornar um boolean, mas não está chegando no formato correto.
A função em questão é uma query com a convenção de nomenclatura pra criar queries JPQL:
boolean existsByPatientIdAndDataBetween(Long id, LocalDateTime opening, LocalDateTime close);
Essa query é realizada dentro de um component de uma service:
@Component
public class sameDataPatientScheduleValidation implements ValidateConsultSchedule {
@Autowired
private ConsultScheduleRepository repository;
public void validate(dataConsultSchedule data) {
LocalDateTime opening = data.data().withHour(7);
LocalDateTime close = data.data().withHour(18);
boolean patientHasSameSchedule = repository.existsByPatientIdAndDataBetween(data.patient_id(), opening, close);
if(patientHasSameSchedule) {
throw new ValidationException("A patient has occupied this schedule");
}
}
}
Eu acho que o erro está aí pois é a única validação que necessita obrigatoriamente de uma verificação dentro de um Patient, além de que a query talvez possa estar retornando uma lista de resultados ao invés de converter pra boolean.