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());
}