JPA中使用Sort排序时遇到的问题

org.springframework.data.jpa.repository.JpaRepository中可以使用Sort定义排序规则,但在使用时我发现了一些小问题

正常基于Pageable中的Sort字段排序

Sort sort = new Sort(Direction.ASC, "seqNum");
Pageable pageable = new PageRequest(0, size, sort);

但是,问题来了

他报错了!!!
原因是这两个类的构造方法被定义为了私有或者保护的方法

在这里插入图片描述
我从网上查了好多相关资料,但他们用的时候貌似都可以直接实例化出来,甚至官网上也是这么用的,但我却不能这样用 (好气


为了解决这个问题,我看了下这两个类的源码,好在类里面定义了相关的静态方法能够使用

在这里插入图片描述

所以可以通过调用这些写好的静态方法而不用实例化就能达到相同的效果

Sort sort = Sort.by(Sort.Direction.DESC,"blogs.size");
Pageable pageable = PageRequest.of(0,size,sort);

PS:原因是springboot版本太新导致的


原文链接:https://blog.csdn.net/qq_44039966/article/details/102713779

==================================================================

 

    @Test
    public void findList() throws Exception {
        // Sort sort = new Sort(Sort.Direction.DESC,"id");
        // Sort.Order order=new Sort.Order(Sort.Direction.DESC, "order_id");
        // PageRequest request  = new PageRequest(0, 2, Sort.by(order));        //这种写法是低版本的spring boot可以这么写,高版本的要下面这么写

        Sort sort = Sort.by(Sort.Direction.DESC,"orderId");       //注意这里不是order_id
        Pageable pageable = PageRequest.of(0,2,sort);

        Page<OrderDTO> result =  orderService.findList(BUYER_OPENID, pageable);
        Assert.assertNotEquals(0, result.getTotalElements());
    }

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值