как реализовать построитель критериев данных jpa с помощью CAST - PullRequest
0 голосов
/ 28 августа 2018

Мы реализуем сортировку данных с данными 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;

Мой вопрос заключается в том, как мы можем включить этот запрос в приведенный выше код jpa либо в порядке, либо в построителе критериев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...