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

目录
  • 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.

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

(0)

相关推荐

  • Spring data jpa的使用与详解(复杂动态查询及分页,排序)

    一. 使用Specification实现复杂查询 (1) 什么是Specification Specification是springDateJpa中的一个接口,他是用于当jpa的一些基本CRUD操作的扩展,可以把他理解成一个spring jpa的复杂查询接口.其次我们需要了解Criteria 查询,这是是一种类型安全和更面向对象的查询.而Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor. 而JpaSpecifica

  • Spring Data JPA使用Sort进行排序(Using Sort)

    通过上一节的学习,我们知道了如何用@Query注解来实现灵活的查询.在上一节的示例中,我也尝试给出简单的排序,通过JPQL语句以及原生SQL来实现的.这样的实现,虽然在一定程度上可以应用,但是灵活度不够,因此结合@Query注解,我们可以使用Sort来对结果进行排序. 1.在CustomerRepository内添加方法 /** * 一个参数,匹配两个字段 * @param name2 * @param sort 指定排序的参数,可以根据需要进行调整 * @return * 这里Param的值和

  • 使用Spring Data Jpa查询全部并排序

    目录 Spring Data Jpa查询全部并排序 1.Repository层只需要简单地extends JpaRepository 2.Service层中如下 JPA之排序问题 1.总览 2.使用JPA / JQL API排序 3.使用JPA条件查询对象API进行排序 Spring Data Jpa查询全部并排序 1.Repository层只需要简单地extends JpaRepository 依旧不用写任何东西.因为它自己其实有一个findAll(Sort sort)的方法,直接用就可以了.

  • SpringBoot JPA sort多属性排序实例

    目录 SpringBoot JPA sort多属性排序 导入jar包 代码示例 在Sping Boot项目中使用Sort排序时报错 可以改用Sort.by获得Sort对象 SpringBoot JPA sort多属性排序 在开发JPA中,遇见需要对数据进行多属性排序的情况,例如 select * from MldmasView order by vslName ASC,custName ASC,docDate DESC; 导入jar包 import org.springframework.dat

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

    目录 springdataJPA的多属性排序 第一步,引包 第二步,service方法代码 springdataJPA排序问题(orderby) spring data JPA的多属性排序 在此介绍我所用的一种方式: 第一步,引包 import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Order; 第二步,service方法代码 @Override     public P

  • 在Spring Data JPA中引入Querydsl的实现方式

    一.环境说明 基础框架采用Spring Boot.Spring Data JPA.Hibernate.在动态查询中,有一种方式是采用Querydsl的方式. 二.具体配置 1.在pom.xml中,引入相关包和配置插件. (1)引入包(注:不需要版本号,Spring Boot 会自动匹配合适的版本) <!-- Querydsl相关包 --> <dependency> <groupId>com.querydsl</groupId> <artifactId&

  • 详解Spring Data JPA中Repository的接口查询方法

    目录 1.查询方法定义详解 2.搜索查询策略 3.查询创建 4.属性表达式 5.特殊参数处理 6.限制查询结果 7. repository方法返回Collections or Iterables 8.repository方法处理Null 9.查询结果流 10.异步查询结果 1.查询方法定义详解 repository代理有两种方式从方法名中派生出特定存储查询. 通过直接从方法名派生查询. 通过使用一个手动定义的查询. 可用的选项取决于实际的商店.然而,必须有一个策略来决定创建什么实际的查询. 2.

  • Spring Data JPA进行数据分页与排序的方法

    一.导读 如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好.所以处理较大数据查询结果展现的时候,分页查询是必不可少的.分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据.那么,本文的主要内容就是给大家介绍一下,如何使用Spring Data JPA进行分页与排序. 二.实体定义 我们使用一个简单的实体定义:Article(文章) @Data @AllArgsConstructor @NoArgsConstructor @Bu

  • Spring Data JPA中 in 条件参数的传递方式

    关于Spring Data JPA中自定义sql 条件的 in参数记录 此文做一个记录,以便以后观看,也希望正在遇到同样问题的同学能有所启发,如果你有更好的方法,或我的做法有问题,请告知下,非常感谢. 下面写两种简单做法,注意下地方: 在此我只记录HQL 中 in 后面参数问题,细节查询方法相关代码就略过,还请见谅 查询接口: /** ** paramString : 自定义 hql ** paramMap : hql中查询条件的参数 ** start:数据开始条数 ** max:最大数据条数

  • Spring DATA JPA 中findAll 进行OrderBy方式

    目录 Spring DATA JPA 中findAll 进行OrderBy Spring Data JPA使用orderby的一个小坑 Spring DATA JPA 中findAll 进行OrderBy 需要在 repository 中 定义这样的方法 :findAllByOrderByUpdatedAtDesc() public List findAllByOrderByUpdatedAtDesc(); 重要:(中间要多加一个By) findAllByOrderByUpdatedAtDesc

  • Spring Data JPA中的动态查询实例

    spring Data JPA大大的简化了我们持久层的开发,但是实际应用中,我们还是需要动态查询的. 比如,前端有多个条件,这些条件很多都是可选的,那么后端的SQL,就应该是可以定制的,在使用hibernate的时候,可以通过判断条件来拼接SQL(HQL),当然,Spring Data JPA在简化我们开发的同时,也是提供了支持的. 通过实现Criteria二实现的动态查询,需要我们的Repo接口继承JpaSpecificationExecutor接口,这是个泛型接口. 然后查询的时候,传入动态

  • Spring Data Jpa 中原生查询 REGEXP 的使用详解

    目录 Spring Data Jpa原生查询 REGEXP 的使用 spring data jpa 原生查询(查一个json中的某一字段) Spring Data Jpa原生查询 REGEXP 的使用 REGEXP 与like 有通用之处, 单 regexp 有更好的精确度,更加自由灵活 在jpa 中使用时 :其中 定位符 ^ 在jpa @query 注解中使用时需要加上引用号 e.g @Query(value = "select p.id as id from zt_products AS p

  • springboot+spring data jpa实现新增及批量新增方式

    目录 springboot+spring data jpa实现新增及批量新增 springdatajpa 新增操作注意 springboot+spring data jpa实现新增及批量新增 spring data jpa (以下简称jpa).这个orm其实和mybatis还是差不多的.但是相对于mybatis来说,省去很多方法,毕竟jpa来说,官方文档给的说法是编写者只需要书写接口.剩下的事就交由jpa来完成.当时,洒家还是不信的.当你用过一次后,你就会发现.真的是这样.只能用两个字来形容,即

  • spring data jpa使用详解(推荐)

    使用Spring data JPA开发已经有一段时间了,这期间学习了一些东西,也遇到了一些问题,在这里和大家分享一下. 前言: Spring data简介: Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层

随机推荐