【发布时间】:2019-03-09 17:49:00
【问题描述】:
我正在使用以下代码通过 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)]"
谁能告诉我一个处理日期的实现。谢谢
【问题讨论】:
-
您也可以发布日志吗?或者至少在哪里抛出错误,行等
-
你为 Date 作为参数值传递了什么?
-
LocalDate between using JPA 2.1 Criteria API。和Compare Date entities in JPA Criteria API。你用过你的搜索引擎吗?它通常会给你一个答案,比任何人在 Stack Overflow 上输入的速度都要快。
标签: java date jpa jpa-criteria