我已经实现了一个自定义弹簧存储库,该存储库在输入中接收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));