JPA page 保留order by
时间: 2023-12-26 17:10:45 浏览: 117
在使用JPA进行分页查询时,可以使用`Pageable`对象来指定分页信息和排序信息。如果你想要保留查询结果的排序,可以在创建`Pageable`对象时指定`Sort`对象,`Sort`对象包含了排序的字段和排序的方向。
例如,假设你要查询`User`表的数据,并按照`age`降序排列,你可以使用以下代码:
```java
Sort sort = Sort.by(Sort.Direction.DESC, "age");
Pageable pageable = PageRequest.of(pageNumber, pageSize, sort);
Page<User> users = userRepository.findAll(pageable);
```
在上面的代码中,`Sort`对象指定了按照`age`字段降序排列。然后,创建`Pageable`对象时传入`Sort`对象,执行查询后返回一个`Page`对象。
如果你希望保留查询结果的排序,那么在后续的查询中也需要使用相同的排序字段和排序方向。例如,如果你想要查询`age>20`的`User`数据,并按照`age`降序排列,可以使用以下代码:
```java
Sort sort = Sort.by(Sort.Direction.DESC, "age");
Pageable pageable = PageRequest.of(pageNumber, pageSize, sort);
Page<User> users = userRepository.findByAgeGreaterThan(20, pageable);
```
在上面的代码中,`findByAgeGreaterThan`方法使用了与之前相同的`Sort`对象,这样就保留了原始查询的排序字段和排序方向。
阅读全文