Я хочу отправить этот запрос http://localhost: 8080 / {url}? Start = 2020-04-20 & end = 2020-04-24 & status = success & status = failed
В транзакции модель
private java.sql.Timestamp addedOn;
Я пытаюсь создать динамический c запрос для нескольких фильтров после этого блога: https://attacomsian.com/blog/spring-data-jpa-specifications
Спецификации. java file toPredicate method
if (criteria.getOperation().equals(SearchOperation.GREATER_THAN)) {
predicates.add(builder.greaterThan(
root.get(criteria.getKey()), criteria.getValue().toString()));
} else if (criteria.getOperation().equals(SearchOperation.LESS_THAN)) {
predicates.add(builder.lessThan(
root.get(criteria.getKey()), criteria.getValue().toString()));
}
Вот мой код контроллера
Timestamp start = new Timestamp(dateFormat.parse(request.getParameter("start")).getTime());
Timestamp end = new Timestamp(dateFormat.parse(request.getParameter("end")).getTime());
Specs txnSpecs = new Specs();
txnSpecs.add(new SearchCriteria("addedon", start, SearchOperation.GREATER_THAN_EQUAL));
txnSpecs.add(new SearchCriteria("addedon", end, SearchOperation.LESS_THAN_EQUAL));
txnSpecs.add(new SearchCriteria("status", Arrays.asList(request_params.get("status")), SearchOperation.IN));
List<Transaction> txnList = transactionRepository.findAll(txnSpecs);
return txnList;
Но когда я делаю запрос, я получаю:
nested exception is java.lang.IllegalArgumentException: Parameter value [2020-04-20] did not match expected type [java.util.Date (n/a)]]
Нужно ли преобразовывать значение Date перед Я отправляю его как параметр для запроса SQL? Или мне нужно использовать другие типы даты?