spring data JPA 中的多屬性排序方式
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); ? ? ? ? ? ? ? ? //基礎(chǔ)條件 ? ? ? ? ? ? ? ? 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參數(shù)
2:可以傳遞Sort對象
3:可以在@Query中自己寫sql/hql語句 手動添加order by
第一種和第二種方式的修改之后不用重啟eclipse
第三種方式雖然在直覺上是最簡單的,但是卻需要重啟eclipse.
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
深入分析Spring BeanDefinition的構(gòu)造元信息
Bean Definition是一個包含Bean元數(shù)據(jù)的對象,它描述了如何創(chuàng)建Bean實例、Bean屬性的值以及Bean之間的依賴關(guān)系,本文將帶大家深入分析Spring BeanDefinition的構(gòu)造元信息,需要的朋友可以參考下2024-01-01SpringCloud+MyBatis分頁處理(前后端分離)
這篇文章主要為大家詳細(xì)介紹了SpringCloud+MyBatis分頁處理,前后端分離,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10java利用pdfbox+poi往pdf插入數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02Springboot如何同時裝配兩個相同類型數(shù)據(jù)庫
這篇文章主要介紹了Springboot如何同時裝配兩個相同類型數(shù)據(jù)庫,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11SpringBoot使用?Sleuth?進(jìn)行分布式跟蹤的過程分析
Spring Boot Sleuth是一個分布式跟蹤解決方案,它可以幫助您在分布式系統(tǒng)中跟蹤請求并分析性能問題,Spring Boot Sleuth是Spring Cloud的一部分,它提供了分布式跟蹤的功能,本文將介紹如何在Spring Boot應(yīng)用程序中使用Sleuth進(jìn)行分布式跟蹤,感興趣的朋友一起看看吧2023-10-10關(guān)于SpringBoot+Mybatis報MapperScan.factoryBean()問題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問題,讓你的項目運(yùn)行更順暢!本指南將帶你一步步解決這個問題,讓你的開發(fā)過程更加高效,不要錯過這個實用指南,快來一探究竟吧!2024-02-02