排序-Pageable

    Pageable pageable = PageRequest.of(page, pageSize, new Sort(Sort.Direction.DESC, "shieldTime", "createTime"));

Pageable排序规则:
和MySQL的排序一样。

http://www.mysqltutorial.org/mysql-order-by/

SELECT
  contactLastname,
  contactFirstname
FROM
  customers
ORDER BY
  contactLastname DESC;

Young   Jeff
Young   Julie
Young   Mary
Young   Dorothy
Yoshido Juri
Walker  Brydey
Victorino   Wendy
Urs Braun


SELECT
  contactLastname,
  contactFirstname
FROM
  customers
ORDER BY
  contactLastname DESC,
  contactFirstname ASC;
Young   Dorothy
Young   Jeff
Young   Julie
Young   Mary
Yoshido Juri
Walker  Brydey
Victorino   Wendy
Urs Braun

⚠️ Young和Yoshido
单词是按照字母一个一个比较的,
u在s后面。

多字段排序

只有第一个字段相同,且存在多条记录, 第二个排序字段才会起作用。
例如
Young Jeff
Young Julie
Young Mary
Young Dorothy

第二个字段起作用
Young Dorothy
Young Jeff
Young Julie
Young Mary

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们需要在JPA中使用多个排序条件时,可以使用Spring Data JPA中提供的`Pageable`接口来实现。`Pageable`接口可以指定排序、分页等参数,让我们能够方便地进行查询。 以下是一个使用`Pageable`进行多个排序条件查询的示例: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { List<User> findByStatus(String status, Pageable pageable); } ``` 在上面的代码中,我们定义了一个名为`findByStatus`的方法,该方法使用了`Pageable`接口作为参数,可以设置排序条件和分页参数。 我们可以在Service层中调用该方法,例如: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> findUsersByStatus(String status) { // 按照年龄降序、姓名升序进行排序 Sort sort = Sort.by(Sort.Direction.DESC, "age").and(Sort.by(Sort.Direction.ASC, "name")); // 设置分页参数,获取前10条记录 Pageable pageable = PageRequest.of(0, 10, sort); return userRepository.findByStatus(status, pageable).getContent(); } } ``` 在上面的代码中,我们使用`Sort`对象来指定排序条件,按照年龄降序和姓名升序进行排序。然后我们创建了一个`Pageable`对象,设置了分页参数和排序条件。最后,我们调用`findByStatus`方法,传入`status`和`pageable`参数,获取前10条按照多个条件排序的用户列表。 需要注意的是,在使用`Pageable`进行多个排序条件查询时,排序条件的设置方式与使用自定义查询方法的方式略有不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值