Я пытаюсь использовать веб-поддержку данных QueryDSL Spring для фильтрации результатов запросов REST на основе значения даты, переданной в качестве параметра запроса.
В настоящее время я сам создаю предикат с даты, переданной в виде строки:
@GetRequest("/foos")
public List<Foo> getFoos(@RequestParam(name = "date", required = false)
@DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
Predicate predicate = QFoo.date.eq(date);
...
}
Но я хочу сделать что-то вроде:
@GetRequest("/foos")
public List<Foo> getFoos(@QueryDslPredicate(root = Foo.class) Predicate predicate) {
...
}
Но, очевидно, он не может проанализировать дату, поскольку у него больше нет информации о шаблоне строки даты. Есть ли способ заставить эту веб-поддержку QueryDSL работать с объектами Date?




Попробуйте добавить @DateTimeFormat в поле сущности:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
Большое спасибо! На самом деле так просто!
В моем случае Контроллеру нужен один параметр типа @QuerydslPredicate. Это работает для меня!
вы можете показать свой класс Foo ?. дата - это поле в классе Foo?