Java Spring数据按一个属性对页面进行排序,以前按另一个属性排序
假设我有一个表employee(id和name列如下所示): 我想创建一个大小为3的页面,我需要结果页面先按Java Spring数据按一个属性对页面进行排序,以前按另一个属性排序,java,sorting,pagination,spring-data-jpa,Java,Sorting,Pagination,Spring Data Jpa,假设我有一个表employee(id和name列如下所示): 我想创建一个大小为3的页面,我需要结果页面先按id排序,然后按name排序 关键是,如果我使用下一个查询: employeeRepository.findAll(PageRequest.of(0, 3, Sort.by("name").ascending().and(Sort.by("id").ascending())) 不按id对页面结果重新排序,只保留名称顺序 我尝试了,首先使用spring数据(OrderByName)和by
id
排序,然后按name
排序
关键是,如果我使用下一个查询:
employeeRepository.findAll(PageRequest.of(0, 3, Sort.by("name").ascending().and(Sort.by("id").ascending()))
不按id对页面结果重新排序,只保留名称顺序
我尝试了,首先使用spring数据(OrderByName)和by page请求进行订购:
employeeRepository.findAllByOrderByName(PageRequest.of(page, size, Sort.by("id").ascending()));
但我总是得到下一个结果:
第1页
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 12 | adrian |
|---------------------|------------------|
| 5 | anne |
|---------------------|------------------|
| 9 | bryce |
|---------------------|------------------|
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 5 | anne |
|---------------------|------------------|
| 9 | bryce |
|---------------------|------------------|
| 12 | adrian |
|---------------------|------------------|
第2页
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 10 | burns |
|---------------------|------------------|
| 1 | charles |
|---------------------|------------------|
| 2 | clyde |
|---------------------|------------------|
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 1 | charles |
|---------------------|------------------|
| 2 | clyde |
|---------------------|------------------|
| 10 | burns |
|---------------------|------------------|
但我需要的结果是:
第1页
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 12 | adrian |
|---------------------|------------------|
| 5 | anne |
|---------------------|------------------|
| 9 | bryce |
|---------------------|------------------|
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 5 | anne |
|---------------------|------------------|
| 9 | bryce |
|---------------------|------------------|
| 12 | adrian |
|---------------------|------------------|
第2页
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 10 | burns |
|---------------------|------------------|
| 1 | charles |
|---------------------|------------------|
| 2 | clyde |
|---------------------|------------------|
|---------------------|------------------|
| id | name |
|---------------------|------------------|
| 1 | charles |
|---------------------|------------------|
| 2 | clyde |
|---------------------|------------------|
| 10 | burns |
|---------------------|------------------|
请注意,每个页面都按id重新排序,但按名称保留第一个顺序
是否有一种方法可以做到这一点,只需要使用页面和排序,或者需要对页面结果进行后期处理
有什么想法吗