java – 将CallbackDataProvider偏移量和限制转换为Pageable页面和大小

前端之家收集整理的这篇文章主要介绍了java – 将CallbackDataProvider偏移量和限制转换为Pageable页面和大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个接受PAGE和SIZE参数的现有REST服务

/fetchrecords?page=0&size=10

反过来,它创建一个Spring Pageable与Spring Repository一起使用.

Pageable pageRequest = new PageRequest(page,size,Sort.Direction.DESC,"created");

我现在想要使用Vaadin 8 CallbackDataProvider,但它会产生OFFSET和LIMIT以用于BackendDataProvider.

dataProvider = new CallbackDataProvider

当然这不会作为offset!= page工作,并且根据偏移位置,限制值将根据剩余的记录数而改变.

如果不重写其余/服务,我怎样才能正确地从DataProvider OFFSET和LIMIT转到PAGE和SIZE?

最佳答案
我有同样的问题.具有偏移量和限制的Vaadin分页比具有页面页面大小的分页更强大(如在REST服务和Spring类PageRequest中).所以,你的问题的答案是:你不能轻易.如果您可以将REST服务参数更改为offset和limit,那么您可以实现自己的Pageable,如:

public class Range implements Pageable,Serializable {

    private static final long serialVersionUID = 0L;

    private int limit;
    private long offset;
    private Sort sort;

    public Range(long offset,int limit,Sort sort) {
         ...
    }

    @Override
    public long getOffset() {
        return offset;
    }

    ...

}

我想知道为什么这不是开箱即用的.

另一种选择是将偏移/限制映射到可能包含所需数据范围的多个页面,然后获取这些页面并仅获取必要的数据.

原文链接:https://www.f2er.com/spring/431375.html

猜你在找的Spring相关文章