spring data JPA 中的多屬性排序方式
更新時間:2022年02月23日 14:56:33 作者:Mark-斯
這篇文章主要介紹了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.
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 中序列化NotSerializableException問題解決辦法
這篇文章主要介紹了java 中序列化NotSerializableException問題解決辦法的相關(guān)資料,這里對序列化問題進行描述說明,并提供解決辦法,希望能幫助到大家,需要的朋友可以參考下2017-08-08
Spring Cloud Gateway Hystrix fallback獲取異常信息的處理
這篇文章主要介紹了Spring Cloud Gateway Hystrix fallback獲取異常信息的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
比較java中Future與FutureTask之間的關(guān)系
在本篇文章里我們給大家分享了java中Future與FutureTask之間的關(guān)系的內(nèi)容,有需要的朋友們可以跟著學習下。2018-10-10
Springboot 整合RabbitMq(用心看完這一篇就夠了)
這篇文章主要介紹了Springboot 整合RabbitMq(用心看完這一篇就夠了),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

