SpringBoot中JPA实现Sort排序的三种方式小结
作者:bladestone 发布时间:2022-02-12 23:35:12
标签:SpringBoot,JPA,Sort排序
引言: 在Spring Boot应用中,基于数据某个字段进行排序是一个非常常用的需求,这里将给出Sort的三种常用用法,基于分页的应用,大家可以各取所需,择机使用。
环境说明
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: 基于特殊参数的排序
建立分页对象:
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字段作为构造方法的入口参数,创建了Pageable对象。
在Repository无需声明任何新的方法,直接使用JpaRepository中继承而来的findAll(Pageable pageable)方法即可。
在Service中调用具体Repository中的方法如下:
Page<ECardEntity> eCardEntities = this.eCardRepo.findAll(pageable);
来源:https://blade.blog.csdn.net/article/details/80355899


猜你喜欢
- 什么是BottomNavigationView底部菜单栏BottomNavigationView的简单用法需求:如上图所示。点击测试一菜单,
- 前言大家都知道,不少仪器工作站可xls文件和2007+的xl以将数据导出为Excel文件,包括97-2003版本的sx文件。采集Excel文
- 前言我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的。命令版本:10分钟学会Visual S
- 本文实例为大家分享了Java实现马踏棋盘的具体代码,供大家参考,具体内容如下马在某个点最多可能有8种走法,用递归和回溯实现。注:代码中,查找
- 将BeanFactory和ApplicationContext作为容器使用在Spring中,BeanFactory和ApplicationC
- 1、特效按钮的进展 之前的思路:css设置div的样式,在js中实现div对事件的响应,并改变div的样式,以实现动画效果。 1:以动画的形
- resultTyperesultType可以把查询结果封装到pojo类型中,但必须pojo类的属性名和查询到的数据库表的字段名一致。如果sq
- 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其
- 前言假设项目打包后,项目结构为:此时如果需要再windows环境中进行项目的启动或关闭,需要频繁的手敲命令,很不方便。此时可以编写.bat脚
- 前言:在 Spring 中, IOC 是很重要的概念,其本质就是 map 结构,存储容器和业务 Be
- C#实现MD5加密,具体如下:方法一首先,先简单介绍一下MD5MD5的全称是message-digest algorithm 5(信息-摘要
- 引言ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设
- 前言为什么要学SpringBoot和Mybatis呢,我觉得作为一个合格的后端程序员增删改查(CRUD)肯定是要会的,而且是最基本的一项技能
- 一、项目简述功能包括(管理员和学生角色): 管理员和学生登录,图书管理,图书添加删除修改,图书 借阅,图书归还,图书查看,学生管理,借还管理
- 功能目标使用Treeview控件实现点左边的节点,在右边显示相关的页面知识点Treeview命名空间:System.Windows.Form
- 概述异常是在程序执行期间出现的问题。C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。异常提供了一种把程序控制权从某个部
- 最近项目需要,需要做一个BMI指数的指示条,先上效果图: BMI指数从18到35,然后上面指示条的颜色会随着偏移量的变化而改变,数字显示当前
- 先看进度条的效果:具体实现:新建类,继承自View,在onDraw中进行绘制:import android.content.Context;
- 关于ListView拖拽移动位置,想必大家并不陌生,比较不错的软件都用到如此功能了.如:搜狐,网易,百度等,但是相比来说还是百度的用户体验较
- 参考: https://gist.github.com/laispace/666dd7b27e9116faece6前提是你本地有 socks