小编Val*_*lan的帖子

多重排序可选查询 - 带有分页的 Spring REST Controller 配置

我想构建一个可以处理多个可选排序查询的弹簧控制器。根据spring.io规范,这些查询应该这样格式化

&sort=name,desc&sort=code,desc
Run Code Online (Sandbox Code Playgroud)

正如爱德华多费尔南德斯所讨论的那样

我知道这可以通过一个带有要排序的值的排序实例来完成,并且方向按照Gregg分别给出但这与 Spring 规范或处理多个排序值不匹配。

我不确定如何将 spring 规范格式中的多个查询转换为可以传递给我的 PageRequest 然后传递给我的存储库的 Sort 。此外,我希望能够使这些成为可选的,如果可能的话,如果根据Rasheed Amir (@SortDefault)需要默认值来实现这一点,我可以使用基于 @Anotation 的配置会很棒

这是我正在使用的基础知识..

领域

@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Subject {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String code; 
...
Run Code Online (Sandbox Code Playgroud)

存储库

public interface SubjectRepository extends JpaRepository<Subject, Long> {
}
Run Code Online (Sandbox Code Playgroud)

服务

@Override
public Page<SubjectDTO> listSubjectsPageble(PageRequest pageableRequest) {
    return subjectRepository.findAll(pageableRequest)
            .map(subjectMapper::subjectToSubjectDTO);
}
Run Code Online (Sandbox Code Playgroud)

控制器

@GetMapping
@ResponseStatus(HttpStatus.OK)
@PreAuthorize("hasRole('LECTURER')")
public Page<SubjectDTO> getSubjects(
        @RequestParam("page") int …
Run Code Online (Sandbox Code Playgroud)

java rest spring pagination jpa

8
推荐指数
1
解决办法
5349
查看次数

标签 统计

java ×1

jpa ×1

pagination ×1

rest ×1

spring ×1