带有排序对象的实体管理器 ORDER BY 查询

Entity Manager ORDER BY query with Sort Object

我正在使用实体管理器并想附加来自排序 (org.springframework.data.domain.sort) 对象的 "ORDER BY" 查询。

Sort 对象包含类似 "id: DESC" 的内容。 我可以将 Sort 对象解析为字符串,删除条件并将其附加到我的查询中。查询看起来像这样 "SELECT p FROM projects ... ORDER BY p.id DESC"

有没有更好的方法来解决这个问题,有什么建议吗?


抱歉,我的描述可能有点误导,但我有一个 REST api 并且我的方法获取 Sort 对象,其中包含我需要排序的字段和方向。我无法轻松地对其进行 ASC 或 DESC 排序。它取决于我拥有的排序对象和方法用法。

只需对 Sort 对象使用 descending 方法即可获得所需内容。

query.orderBy(mySort.descending());

上周,我检查了同样的问题并更改了我的代码,如下所示:工作正常;与您分享相同的内容。

StringBuilder strBuilder = "SELECT p FROM projects";
entityManager.createQuery(strBuilder.toString());  
Iterator<Order> orderIterator = sort.iterator();
Order order = orderIterator.next();
strBuilder.append(" Order By ").append(order.getProperty()).append(" ")
                .append(order.getDirection().name());