[英]Criteria Query with filter of non String type - JPA/Hibernate Spring Boot
[英]REST Query Language with Spring and JPA Criteria Date type
我正在使用以下代码通过Criteria API进行动态搜索
public List<User> findAllByParam(List<SearchCriteria> params) {
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<User> query = builder.createQuery(User.class);
Root<User> r = query.from(User.class);
Predicate predicate = builder.conjunction();
for (SearchCriteria param : params) {
if (param.getOperation().equals(">")) {
predicate = builder.and(predicate,
builder.greaterThan(r.get(param.getKey()),
param.getValue().toString()));
} else if (param.getOperation().equals("<")) {
predicate = builder.and(predicate,
builder.lessThan(r.get(param.getKey()),
param.getValue().toString()));
} else if (param.getOperation().equals(":")) {
predicate = builder.and(predicate,
builder.equal(r.get(param.getKey()), param.getValue()));
}
}
query.where(predicate);
List<User> result = entityManager.createQuery(query).getResultList();
return result;
}
但是当我传递日期类型参数时,出现以下错误:
"Parameter value [1539122400000] did not match expected type [java.util.Date (n/a)]"
任何人都可以向我展示一个也可以处理日期的实现。 谢谢
确保没有将参数简化为字符串。 看看是否可以避免使用.toString()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.