如何使用CAST实施JPA数据条件构建器

时间:2018-08-28 09:08:34

标签: jpa spring-data-jpa

我们正在使用其中一列的jpa数据实现数据排序,我们的代码是-

 @Override
 public Predicate toPredicate(Root<UpgradeFile> uf, CriteriaQuery<?> query, CriteriaBuilder cb) {

 if (sortAttr != null && sortAttr.equals("version")) {
    if (sortOrder == 1) { //asc order
        orderList.add(cb.asc(uf.get(sortAttr)));

    } else if (sortOrder == 2) { //desc order
        orderList.add(cb.desc(uf.get(sortAttr)));
    }

    query.orderBy(orderList);
}
...

我们的版本列为字符串,其值类似于“ 11.0.2.73”,“ 11.0.2.312”。 由于列在字符串中,排序无法正常工作,因此我们需要在删除“”之后将其强制转换为数字。例如-

order by ( CAST(               
                replace(version, '.', '')           
       AS numeric) ) asc;

我的问题是我们如何才能将此查询以orderby或criteriabuilder的形式纳入上述jpa代码中。

0 个答案:

没有答案