And*_*qua 2 java jpa criteria-api spring-data-jpa
我已经实现了一个我的自定义 Spring 存储库,它在输入中接收一个org.springframework.data.domain.Pageable对象。此Pageable对象具有以下排序属性(例如):id: DESC,name: ASC.
我需要将pageable.getSort()属性转换为 aList<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;
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?谢谢,安德里亚
可以使用queryUtils.
import org.springframework.data.jpa.repository.query.QueryUtils;
criteriaQuery.orderBy(QueryUtils.toOrders(pageable.getSort(), rootEntity, criteriaBuilder));
Run Code Online (Sandbox Code Playgroud)