SpringBoot中JPA實現(xiàn)Sort排序的三種方式小結
引言: 在Spring Boot應用中,基于數(shù)據(jù)某個字段進行排序是一個非常常用的需求,這里將給出Sort的三種常用用法,基于分頁的應用,大家可以各取所需,擇機使用。
環(huán)境說明
Spring 4.2 Spring Boot 1.5.11 Java 8
前置說明
ECardEntity.java的定義:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.jd.ai.fasion.util.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Entity
@Table(name="t_ebusiness_card")
@Data
@EqualsAndHashCode(callSuper=true)
public class ECardEntity extends BaseEntity {
private static final long serialVersionUID = 6580526495176090890L;
@Column
private String name;
@Column(name="zip_url")
private String zipUrl;
@Column(name="thumb_url")
private String thumbUrl;
@Column(name="seq_num")
private int seqNum;
}
這里的seqNum是排序字段,基于升序來排序。
Repository的定義:
@Repository
public interface EBusinessCardRepository extends JpaRepository<ECardEntity, Long> {
///方法的定義
}
方法1: 基于特殊參數(shù)的排序
建立分頁對象:
Pageable pageable = new PageRequest(pageNum, size);
在Repository中定義相應的方法:
Page<ECardEntity> findByOrderBySeqNumAsc(Pageable pageable);
這里使用默認的字段拼接形成的方法名,從而自動解析形成對應的方法。
方法2: 基于自定義的@Query進行排序
Pageable的對象定義與方法1中相同。
在Repository中定義相應的JPL語句:
@Query("select e from ECardEntity e ORDER BY e.seqNum ASC")
Page<ECardEntity> findInOrders(Pageable pageable);
方法3: 基于Pageable中的Sort字段
Pageable對象的聲明:
Sort sort = new Sort(Direction.ASC, "seqNum"); Pageable pageable = new PageRequest(pageNum, size, sort);
這里將Sort字段作為構造方法的入口參數(shù),創(chuàng)建了Pageable對象。
在Repository無需聲明任何新的方法,直接使用JpaRepository中繼承而來的findAll(Pageable pageable)方法即可。
在Service中調用具體Repository中的方法如下:
Page<ECardEntity> eCardEntities = this.eCardRepo.findAll(pageable);
總結
這幾種方法都是非常簡單易用的,這里對于這個排序的簡單需求來說,方法是最為簡單的,無需在Repository進行任何的方法聲明直接使用即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot基于keytool實現(xiàn)https的雙向認證示例教程
這篇文章主要介紹了springboot基于keytool實現(xiàn)https的雙向認證,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
java運行jar包提示?“XXX中沒有主清單屬性”?"找不到主類”兩種解決辦法
本文主要介紹了java運行jar包提示?“XXX中沒有主清單屬性”?"找不到主類”兩種解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06
Spring Cloud 優(yōu)雅下線以及灰度發(fā)布實現(xiàn)
這篇文章主要介紹了Spring Cloud 優(yōu)雅下線以及灰度發(fā)布實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Spring @ExceptionHandler注解統(tǒng)一異常處理和獲取方法名
這篇文章主要介紹了Spring注解之@ExceptionHandler 統(tǒng)一異常處理和獲取方法名,在實際項目中,合理使用@ExceptionHandler能夠提高代碼的可維護性和用戶體驗,通過本文的解析和實踐,讀者可以更好地理解和掌握@ExceptionHandler的用法和原理2023-09-09

