spring|spring data JPA 中的多属性排序方式

目录

  • springdataJPA的多属性排序
    • 第一步,引包
    • 第二步,service方法代码
  • springdataJPA排序问题(orderby)
    【spring|spring data JPA 中的多属性排序方式】
    spring data JPA的多属性排序 在此介绍我所用的一种方式:

    第一步,引包
    import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Order;


    第二步,service方法代码
    @Overridepublic Page findAll(Integer pageNum, Integer pageSize, TurnOverRecord turnOverRecord) {//多属性排序//先按isTurnOver从小到大升序,再按turnOverTime升序List< Order> orders=new ArrayList< Order>(); orders.add( new Order(Sort.Direction. ASC, "isTurnOver")); orders.add( new Order(Sort.Direction. ASC, "turnOverTime")); Pageable pageable= new PageRequest(pageNum - 1, pageSize, new Sort(orders)); Specification specification = new Specification() {@Overridepublic Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {Predicate predicate = cb.conjunction(); // 单属性排序// query.orderBy(cb.asc(root.get("isTurnOver"))); // query.orderBy(cb.desc(root.get("id"))); // query.groupBy(root.get("id")); query.distinct(true); //基础条件predicate.getExpressions().add(cb.equal(root.get("flag"), 1)); if (turnOverRecord != null) {其他筛选条件}return predicate; }}; return turnOverRecordDao.findAll(specification, pageable); }


    spring data JPA排序问题(order by) 1:可以传递Pageable对象,其中Pageable可以包含Sort参数
    2:可以传递Sort对象
    3:可以在@Query中自己写sql/hql语句手动添加order by
    第一种和第二种方式的修改之后不用重启eclipse
    第三种方式虽然在直觉上是最简单的,但是却需要重启eclipse.
    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

      推荐阅读