我正在尝试使用QueryDSL Spring数据Web支持,根据作为请求参数传递的Date的值来过滤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) {
...
}
但显然它无法解析日期,因为它不再有关于 Date 字符串模式的任何信息。有没有办法让这个QueryDSL Web支持使用Date对象?
尝试将@DateTimeFormat
添加到实体字段:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;