如何将整数转换为条件查询的字符串?
IE:
Predicate predicate = criteriaBuilder.like((Expression) root.get(filterKey),
"%" + filterValue + "%");
我想为 dataTable 组件创建过滤器.... 即对于 ID 值我想得到这样的过滤器:
如果我输入“1”,我将获得 ID 包含“1”的所有项目(223122 ID 仍然正确)
我自己没有使用过这个,但是另一个问题:
使用 JPA 2.0 Criteria API 和 cast 导致生成的 JPQL 在 Hibernate 中失败
建议使用.as(String.class)
afterroot.get(filterKey)
来完成你想要的。
试试看
Predicate predicate = criteriaBuilder.like(root.get(filterKey).as(String.class),
"%" + filterValue + "%");
这为我解决了问题:
Expression<String> filterKeyExp = root.get(filterKey).as(String.class);
filterKeyExp = criteriaBuilder.lower(filterKeyExp);
Predicate predicate = criteriaBuilder.like(filterKeyExp ,"%" + filterValue.trim().toLowerCase() + "%");