加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:46:47 所属栏目:大数据 来源:网络整理
导读:我有一个接受PAGE和SIZE参数的现有REST服务 /fetchrecords?page=0size=10 反过来,它创建一个Spring Pageable与Spring Repository一起使用. Pageable pageRequest = new PageRequest(page,size,Sort.Direction.DESC,"created"); 我现在想要使用Vaadin 8 Callb

我有一个接受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;
    }

    ...

}

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读