激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Data JPA使用Sort進行排序(Using Sort)

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

2020-12-02 10:50wayne Java教程

本篇文章主要介紹了Spring Data JPA使用Sort進行排序(Using Sort),具有一定的參考價值,有興趣的可以了解一下

通過上一節的學習,我們知道了如何用@Query注解來實現靈活的查詢。在上一節的示例中,我也嘗試給出簡單的排序,通過JPQL語句以及原生SQL來實現的。這樣的實現,雖然在一定程度上可以應用,但是靈活度不夠,因此結合@Query注解,我們可以使用Sort來對結果進行排序。

1、在CustomerRepository內添加方法

?
1
2
3
4
5
6
7
8
9
10
/**
 * 一個參數,匹配兩個字段
 * @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中測試

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
 * @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的屬性名,不是數據庫的字段,要注意到!!

更多用法,請參考源碼:http://www.icnws.com/wp-content/uploads/2017/06/Sort.java_.txt

參考:

官方文檔,http://docs.spring.io/spring-data/jpa/docs/current/reference/html/

DEMO,https://github.com/icnws/spring-data-jpa-demo

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://spring4all.com/article/105

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 久久最新免费视频 | 日韩字幕在线 | 亚洲第一成人在线视频 | 欧美中文在线 | 爱操视频 | 亚洲九九色| www亚洲免费| av在线免费看网站 | 久久久噜噜噜久久熟有声小说 | 日本一区二区不卡在线 | av电影网站在线 | 欧美黄色小视频 | 免费在线观看中文字幕 | 成人一级黄色大片 | 色网站免费观看 | 久久欧美亚洲另类专区91大神 | 欧美日韩成人一区二区 | 欧美日韩1区2区 | 青青国产在线视频 | 国产一级性生活视频 | 国产精品一区在线观看 | 精品一区二区中文字幕 | 国内精品久久久久久2021浪潮 | 欧美成人毛片 | 精品国产一区二区三区在线观看 | www69xxx | 欧美成年人视频 | 黄色免费入口 | 蜜桃视频观看麻豆 | avhd101高清在线迷片麻豆 | 午夜在线视频一区二区三区 | 91真视频| 九色 在线| 性高潮一级片 | 91精品国产免费久久 | 久久国产精品久久久久久 | 国产一级淫片在线观看 | 羞羞视频免费网站 | 国产精品爱久久久久久久 | 成人男男视频拍拍拍在线观看 | 日本一区二区久久久 |