您好,登录后才能下订单哦!
本篇文章为大家展示了在Spring Data JPA如何利用Sort进行排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
1、在CustomerRepository内添加方法
/** * 一个参数,匹配两个字段 * @param name2 * @param sort 指定排序的参数,可以根据需要进行调整 * @return * 这里Param的值和=:后面的参数匹配,但不需要和方法名对应的参数值对应 * */ @Query("select c from Customer c where c.firstName=:name or c.lastName=:name") List<Customer> findByName4(@Param("name") String name2,Sort sort);
方法一如既往,是声明式的,只是在原有方法的基础上,加上Sort(org.springframework.data.domain.Sort)作为参数即可。
2、在CustomerController中测试
/** * @Query注解方式查询, * 用@Param指定参数,匹配firstName和lastName */ @RequestMapping("/findByName") public void findByName4(){ //按照ID倒序排列 System.out.println("直接创建sort对象,通过排序方法和属性名"); Sort sort = new Sort(Sort.Direction.DESC,"id"); List<Customer> result = repository.findByName4("Bauer",sort); for (Customer customer:result){ System.out.println(customer.toString()); } System.out.println("-------------------------------------------"); //按照ID倒序排列 System.out.println("通过Sort.Order对象创建sort对象"); Sort sortx = new Sort(new Sort.Order(Sort.Direction.DESC,"id")); List<Customer> resultx = repository.findByName4("Bauer",sort); for (Customer customer:result){ System.out.println(customer.toString()); } System.out.println("-------------------------------------------"); System.out.println("通过排序方法和属性List创建sort对象"); List<String> sortProperties = new ArrayList<>(); sortProperties.add("id"); sortProperties.add("firstName"); Sort sort2 = new Sort(Sort.Direction.DESC,sortProperties); List<Customer> result2 = repository.findByName4("Bauer",sort2); for (Customer customer:result2){ System.out.println(customer.toString()); } System.out.println("-------------------------------------------"); System.out.println("通过创建Sort.Order对象的集合创建sort对象"); List<Sort.Order> orders = new ArrayList<>(); orders.add(new Sort.Order(Sort.Direction.DESC,"id")); orders.add(new Sort.Order(Sort.Direction.ASC,"firstName")); List<Customer> result3 = repository.findByName4("Bauer",new Sort(orders)); for (Customer customer:result3){ System.out.println(customer.toString()); } System.out.println("-------------------------------------------"); }
这里总共列举了四种排序方式:
1)直接创建Sort对象,适合对单一属性做排序
2)通过Sort.Order对象创建Sort对象,适合对单一属性做排序
3)通过属性的List集合创建Sort对象,适合对多个属性,采取同一种排序方式的排序
4)通过Sort.Order对象的List集合创建Sort对象,适合所有情况,比较容易设置排序方式
对应着我们的使用场景来进行选择创建Sort对象的方式。
注意,这里并没有列举所有的Sort使用方式,还有忽略大小写,使用JpaSort.unsafe、聚合函数等进行排序,查询的属性值是Entity的属性名,不是数据库的字段,要注意到!!
上述内容就是在Spring Data JPA如何利用Sort进行排序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。