从 Pageable.getSort() 转换为列表<Order>,以对 Spring 存储库自定义中的条件 API 进行的查询进行排序



我已经实现了一个自定义弹簧存储库,该存储库在输入中接收org.springframework.data.domain.Pageable对象。此Pageable对象具有以下排序属性(例如(:id: DESC,name: ASC

我需要将pageable.getSort()属性转换为List<Order>,以设置criteriaQuery.orderBy(List<Order>)方法的订单。

为了检索分类结果,我使用了new PageImpl将其传递给pageable对象,但这无法管理订购。

TypedQuery<Entity> typedQuery = entityManager.createQuery(criteriaQuery);
typedQuery.setFirstResult(pageable.getOffset());
typedQuery.setMaxResults(pageable.getPageSize());
Page<Entity> page = new PageImpl<Entity>(typedQuery.getResultList(), pageable, typedQuery.getMaxResults());
return page;

有什么建议吗?谢谢,安德里亚

可以使用queryUtils

 import org.springframework.data.jpa.repository.query.QueryUtils;
    criteriaQuery.orderBy(QueryUtils.toOrders(pageable.getSort(), rootEntity, criteriaBuilder));

相关内容

  • 没有找到相关文章

最新更新