jpa Sort.by 多个 属性
时间: 2023-07-20 17:27:59 浏览: 139
在 JPA 中,可以使用 `Sort.by()` 方法来指定查询结果的排序方式。如果需要按照多个属性进行排序,可以在 `Sort.by()` 方法中添加多个 `Order` 对象来指定排序规则。
例如,以下代码将查询 `Person` 表中的所有记录,并按照 `age` 属性升序、`lastName` 属性降序排列:
```java
Sort sort = Sort.by(
Order.asc("age"),
Order.desc("lastName")
);
List<Person> persons = personRepository.findAll(sort);
```
在这个例子中,`Sort.by()` 方法用于创建一个排序规则,其中 `Order.asc()` 和 `Order.desc()` 方法分别用于指定升序和降序排序方式,参数为属性名。
除了 `Sort` 外,还可以使用 `Pageable` 来指定查询结果的分页和排序方式。例如,以下代码将查询 `Person` 表中的第 2 页记录(每页 10 条记录),并按照 `age` 属性升序、`lastName` 属性降序排列:
```java
Pageable pageable = PageRequest.of(
1, 10,
Sort.by(
Order.asc("age"),
Order.desc("lastName")
)
);
Page<Person> persons = personRepository.findAll(pageable);
```
在这个例子中,`PageRequest.of()` 方法用于创建一个 `Pageable` 对象,其中第三个参数为排序规则。
阅读全文