欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

springdataJPA中的多属性排序方式,

来源: javaer 分享于  点击 24870 次 点评:131

springdataJPA中的多属性排序方式,


目录
  • springdataJPA的多属性排序
    • 第一步,引包
    • 第二步,service方法代码
  • springdataJPA排序问题(orderby)

    spring data JPA的多属性排序

    在此介绍我所用的一种方式:

    第一步,引包

    import org.springframework.data.domain.Sort;
    import org.springframework.data.domain.Sort.Order;

    第二步,service方法代码

      @Override
        public Page<TurnOverRecord> 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<TurnOverRecord> specification = new Specification<TurnOverRecord>() {
                @Override
                public Predicate toPredicate(Root<TurnOverRecord> 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.

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持3672js教程。

    您可能感兴趣的文章:
    • SpringBoot JPA sort多属性排序实例
    • 使用Spring Data Jpa查询全部并排序
    • Spring data jpa的使用与详解(复杂动态查询及分页,排序)
    • Spring Data JPA使用Sort进行排序(Using Sort)
    相关栏目:

    用户点评