使用jpa时分页查询封装pageable

使用jpa时分页查询封装pageable
public static Pageable makePageable(PageDto pageDto) {
if (StringUtils.isBlank(pageDto.getSortColumn())) {
return PageRequest.of(pageDto.getPage() - 1, pageDto.getLimit());
} else {
return PageRequest.of(pageDto.getPage() - 1, pageDto.getLimit(),
makeSort(pageDto.getSortColumn(), pageDto.getSortDirection()));
}
}

public static Sort makeSort(String column, String direction) {
Sort.Direction sortDirection = StringUtils.equals(direction, “desc”) ? Sort.Direction.DESC : Sort.Direction.ASC;
return new Sort(sortDirection, column);
}

  • 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、付费专栏及课程。

余额充值