如何在 spring-data-rest 中使用 Pageable 作为 get-query 参数? [英] How to use Pageable as get-query parameter in spring-data-rest?

查看:43
本文介绍了如何在 spring-data-rest 中使用 Pageable 作为 get-query 参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的查询控制器,它接受查询参数(如 Person dto)和一个 Pageable:

I have a simple query controller that takes query parameters (as Person dto) and a Pageable:

@RestController
public class PersonController {
   @GetMapping("/persons")
   public Object search(org.springframework.data.domain.Pageable pageable, Person form) {
       repository.findAll(form, pageable);
   }
}

pageable 可以同时采用 sortpage 参数,如下所示:

The pageable can take both sort and page parameters as follows:

http://localhost:8080/persons?sort=age,desc&page=5

问题:对于排序,我想添加诸如NULLS_LASTNULLS_FIRST 之类的顺序提示.

Problem: for the sort, I want to add order hints like NULLS_LAST or NULLS_FIRST.

问题:我怎样才能使用查询参数来实现这一点?

Question: how can I achieve this using query params too?

推荐答案

您可以像这样修改 Pageable 对象(例如放入控制器的方法).这是一个带有一个排序字段的示例,但您可以在所有字段上循环并以相同的方式修改 nullsLast/nullsFirst.请尝试:

You can modify Pageable object like this (method to put in your controller for example). This is an example with one sort field, but you can loop on all fields and modify nullsLast/nullsFirst in the same way. Please try :

private Pageable customSort(Pageable pageable) {
    Sort sort = pageable.getSort();
    Order order = sort.iterator().next();
    List<Order> orders = new ArrayList<>();
    // nullsFirst or nullsLast
    orders.add(new Order(order.getDirection(),order.getProperty()).nullsFirst());
    return PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(orders));
}

这篇关于如何在 spring-data-rest 中使用 Pageable 作为 get-query 参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆