Spring data jpa sort多屬性排序問題


最近在用spring data jpa ,其中涉及到使用sort進行排序問題。對於正常的排序我們可以用如下方式進行聲明:

Sort sort=new Sort(Direction.ASC,"id");

 

  其中第一個參數表示是降序還是升序(此處表示升序),第二個參數表示你要按你的entity(記住是entity中聲明的變量,不是數據庫中表對應的字段)中的那個變量進行排序。這個式子很容易認識。但是問題來了,如果目前我有三個字段:age、pgrade、dnum分別表示年齡、級別、部門編號。那么我要先按age降序再按pgrade升序、再按dnum降序怎么辦。

  這個時候就用到了我今天想說的一個類(趁還沒忘)Order,記住 這個order一定要是import org.springframework.data.domain.Sort.Order;這個包下面的。然后我們建立三個order分別為如下:

Order order2 = new Order(Direction.DESC, "age");
Order order3 = new Order(Direction.ASC, "pgrade");
Order order = new Order(Direction.DESC, "dnum");

 

  不要在意前面的名字,無傷大雅。那么我們現在的問題是建立他們三個有什么用呢,我們要用的是sort呀,有用。在sort中有種構造方法如下:


那么我們目前的任務就是把這三個order放到list里面然后把list放到sort里面這么簡單。不過這里要注意,添加到list中的先后直接關聯着排序的優先級,如下:

list.add(order2);
list.add(order3);
list.add(order);
Sort sort1 = new Sort(list);

那么就完成了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM