Java Vaadin网格回调数据提供程序错误的查询参数值

Java Vaadin网格回调数据提供程序错误的查询参数值,java,vaadin,vaadin-grid,vaadin8,Java,Vaadin,Vaadin Grid,Vaadin8,我对网格延迟加载的实现有一个问题。以下代码表示数据提供程序: private DataProvider<ReservationDTO, Void> buildDataProvider() { return DataProvider.fromCallbacks( query -> { final List<SortDTO.OrderDTO> orders = query.getSortOrders().stream()

我对网格延迟加载的实现有一个问题。以下代码表示数据提供程序:

private DataProvider<ReservationDTO, Void> buildDataProvider() {
    return DataProvider.fromCallbacks(
        query -> {
            final List<SortDTO.OrderDTO> orders = query.getSortOrders().stream()
                .map(queryOrder -> SortDTO.OrderDTO.builder()
                    .property(queryOrder.getSorted())
                    .direction(queryOrder.getDirection() == SortDirection.DESCENDING ? DirectionEnum.ASC : DirectionEnum.DESC)
                    .build()
                )
                .collect(Collectors.toList());

            if (orders.isEmpty()) {
                orders.add(SortDTO.OrderDTO.builder()
                    .property("createdAt")
                    .direction(DirectionEnum.ASC)
                    .build());
            }

            final FindReservationsRequestDTO request = FindReservationsRequestDTO.builder()
                .criteria(buildSearchCriteria())
                .sort(SortDTO.builder()
                    .orders(orders)
                    .build())
                .build();

            return reservationsResource.getAllReservations(request, query.getOffset(), query.getLimit()).getContent().stream();
        },
        query -> reservationsResource.getReservationCount(FindReservationsRequestDTO.builder()
            .criteria(buildSearchCriteria())
            .build())
    );
}
专用数据提供程序buildDataProvider(){
返回DataProvider.fromCallbacks(
查询->{
最终列表顺序=query.getSortOrders().stream()
.map(queryOrder->SortDTO.OrderDTO.builder()
.property(queryOrder.getSorted())
.direction(queryOrder.getDirection()==SortDirection.DESCENDING?directionnum.ASC:directionnum.DESC)
.build()
)
.collect(Collectors.toList());
if(orders.isEmpty()){
orders.add(SortDTO.OrderDTO.builder()
.财产(“createdAt”)
.方向(directionnum.ASC)
.build());
}
final FindReservationsRequestDTO request=FindReservationsRequestDTO.builder()
.criteria(buildSearchCriteria())
.sort(SortDTO.builder()
.命令(命令)
.build())
.build();
返回reservationsResource.getAllReservations(请求,query.getOffset(),query.getLimit()).getContent().stream();
},
query->reservationsResource.getReservationCount(FindReservationsRequestDTO.builder()
.criteria(buildSearchCriteria())
.build())
);
}
如果我理解正确,查询的“偏移”和“限制”值必须由Vaadin自动定义。但当我调试上面的代码时,我可以看到偏移量=0,限制=2147483647。这意味着数据库中的所有数据都是通过第一个且仅一个查询加载的。因此,在这种情况下,延迟加载没有任何意义


请帮助我理解我做错了什么

如果将
query.getLimit()
更改为
10
,会发生什么情况?代码的这一部分看起来并不重要(这是相当标准的)。因此,错误一定来自其他地方。您看到的偏移/限制值是
newquery()
的默认值,它仅用于编写声明性设计或“全选”。