信息发布→ 登录 注册 退出

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

发布时间:2026-01-11

点击量:
目录
  • spring data JPA的多属性排序
    • 第一步,引包
    • 第二步,service方法代码
  • spring data JPA排序问题(order by)

    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.

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

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!