Как использовать Spring JPA для пользовательского запроса при попытке запроса по дате? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть метод, в котором я пытаюсь найти все записи на основе даты.Я использую MySQL и тип данных - дата.В базе данных форма "2019-02-22".

Как мне искать дату в этой форме, используя репозиторий Spring JPA?

Я пытался изменить формат, используя формат SimpleDateFormat, но затем я получаю ошибки, сообщающие, что измените тип данных на String.Я не хочу, чтобы это была строка, я хочу, чтобы тип данных оставался датой.Как это сделать?

Вот хранилище:

@Query(value="SELECT alttransport, customerfull, serviceadv, waitflag, apptdate FROM service WHERE apptdate=:currentDate", nativeQuery=true)
ArrayList<Serviceappt> getCurrentAppt(@Param("currentDate") Date currentDate);

Вот метод, который дает мне ошибку:

@Override
public ArrayList<Serviceappt> getAppts(Date currentDate) {
    final SimpleDateFormat dateFormat= new SimpleDateFormat("MM/dd/yyyy");
    log.info("the date is: "+ dateFormat.format(currentDate));
    ArrayList<Serviceappt> theList = apptRepository.getCurrentAppt(dateFormat.format(currentDate));
    for(Serviceappt appt: theList){
        log.info("the customer is: "+appt.getCustomerfull());
    }
    return theList;
 }

Ошибка:

Метод getCurrentAppt (Date) в типе ServiceapptRepository не применим для аргументов (String).

Как мне заставить это работать?Спасибо!

1 Ответ

0 голосов
/ 25 февраля 2019

Ваш метод getCurrentAppt ожидает параметр Date, но вы передаете dateFormat.format(currentDate), который возвращает String.

SimpleDateFormat * s format метод используется для форматированияDate как String в соответствии с указанным форматом.

Вам не нужно форматировать дату в соответствии с форматом вашей базы данных, просто передайте дату в качестве аргумента:

ArrayList<Serviceappt> theList = apptRepository.getCurrentAppt(currentDate);

Если вам нужно отобразить его, вы можете отформатировать его, как вы уже сделали:

log.info("the date is: "+ dateFormat.format(currentDate));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...