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

