相关文章推荐
眼睛小的牛腩  ·  Selenium: ...·  3 月前    · 
爱运动的木瓜  ·  AIGC ...·  4 月前    · 
挂过科的油条  ·  Python ...·  1 年前    · 

引言: 在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);

这几种方法都是非常简单易用的,这里对于这个排序的简单需求来说,方法是最为简单的,无需在Repository进行任何的方法声明直接使用即可。

引言: 在Spring Boot应用中,基于数据某个字段进行排序是一个非常常用的需求,这里将给出Sort的三种常用用法,基于分页的应用,大家可以各取所需,择机使用。环境说明Spring 4.2 Spring Boot 1.5.11 Java 8前置说明ECardEntity.java的定义:import javax.persistence.Column;import...
项目需求: 在文本框填写序号,让显示的顺序根据序号的变换而更改。 效果图(用的blur触发事件,看起来不太舒服): 图片可以看到,当我删除序号后,会自动填充0.(在添加内容的时候没有序号这一项,添加完成后默认为空,为空后会在第一个显示)。当我把4改1后自动向上移动。 不足: 更改后是通过刷新页面来展示效果的,不圆润。触发方式不太合适。 代码介绍: 首先数据库要有相应的字段来存储用来排序的字段...
在本文,我将解释如何使用启用分页的 API 以及排序和过滤来实现 Spring Boot 项目。在此实际应用程序开发,我在 Spring Data Core 使用 Pageable,Spring Data JPA 和基于 MySQL 的数据库,您可以将其与 MongoDB 或您想要的任何其他数据库一起使用。 对于本教程,我将使用我为之开发的库 REST API, Spring Boot REST API 使用 JPA、Hibernate、MySQL 教程 如果你真的是 Spring boot 和.
​ 本文将要探讨的是用于Java Persistence API(JPA排序的各种实现方式,它们适用于简单实体以及一对多关系的实体。这些方法将排序工作的负担委托给数据库层。 2、使用JPA / JQL API排序 ​ 通过使用Order By关键词实现JQL排序: String jql ="Select * from Student order by id"; Query que... @RequestMapping(value = "/testPageable", method = RequestMethod.GET) public Page&lt;User&gt; testPageable( @RequestParam("page") Integer page, @RequestParam("size"...
1、认识JPA的分页接口和排序类 在项目的开发,需要经常对数据表进行分页和排序查询。下面将介绍如何使用Spring Data JPA对数据进行分页和排序。 1.1 分页排序接口 PagingAndSortingRepository PagingAndSortingRepository 接口继承自CrudRepository 接口提供的分页和排序方法。其关键代码如下: @NoRepos...
// 定义分页查询方法 public Page<User> findUsersByPage(int pageNum, int pageSize) { // 使用 PageRequest 定义分页参数 Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by("id")); // 调用 JpaRepository 的 findAll 方法,传入分页参数 return userRepository.findAll(pageable); 其,`User` 表示实体类,`userRepository` 是继承自 `JpaRepository` 的接口,用于操作数据库。 在分页查询方法,我们通过 `PageRequest.of` 方法定义了分页参数:`pageNum` 表示当前页数,`pageSize` 表示每页显示的数据量,`Sort.by("id")` 表示按 `id` 字段升序排列。 接着,我们调用 `userRepository.findAll` 方法,传入分页参数,并且该方法的返回值类型为 `Page<User>`,因此可以直接返回结果。 以上就是 Spring Boot JPA 实现分页查询的代码,希望能够帮到你! Maven之java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags异常分析 飞机火车巴雷特: 我是遇到这个问题的时候也是该了jdk版本就解决了。备注:从jdk11改为jdk8. Maven之java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags异常分析 改idea的jdk版本就行,亲测有效,谢谢楼下的朋友。 Spring中@Async用法总结 ' · ': @Async @Transactional public void test(){ 这样也可以实现 Docker运行之com.docker.supervisor failed to start Exit code 1 问题之解决 qq_863064604: 资源管理器,找到com.docker.backend进程,停止,问题就解决了 Maven之java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags异常分析 binge124: 直接改idea对应的jdk版本就可以了,亲测有效,谢谢楼下这哥们。