JPA - Criteria Query - 使用"like"搜索整数

Mar*_*rów 16 integer jpa

,

我如何将整数转换为字符串进行条件查询?

Predicate predicate = criteriaBuilder.like((Expression) root.get(filterKey),
                    "%" + filterValue + "%");
Run Code Online (Sandbox Code Playgroud)

我想为dataTable组件创建过滤器....即对于ID值我想得到这样的过滤器:

如果我输入"1",我将获得ID为"1"的所有项目(223122 ID仍然是正确的)

Dou*_*rop 19

我自己没有用过,但另一个问题是:

使用JPA 2.0 Criteria API和强制转换会导致生成的JPQL在Hibernate中失败

建议使用.as(String.class)root.get(filterKey)完成你想要的.

如果您正在使用Hibernate,请注意报告的 错误


小智 5

试试吧

Predicate predicate = criteriaBuilder.like(root.get(filterKey).as(String.class),
                    "%" + filterValue + "%");
Run Code Online (Sandbox Code Playgroud)