Vaadin表中的延迟加载?
在Vaadin表中是否有实现分页/延迟加载的特殊方法。 我试图找到一些文档,但找不到 使用及其可移植组件。我是最有效的(服务器资源副作用)方法,而且有最简单的API(根本不需要使用容器API!)。只需实现两个简单的接口,就完成了。下面是一个使用lambdas和基本DAO的示例Vaadin表中的延迟加载?,vaadin,vaadin7,Vaadin,Vaadin7,在Vaadin表中是否有实现分页/延迟加载的特殊方法。 我试图找到一些文档,但找不到 使用及其可移植组件。我是最有效的(服务器资源副作用)方法,而且有最简单的API(根本不需要使用容器API!)。只需实现两个简单的接口,就完成了。下面是一个使用lambdas和基本DAO的示例 @Inject GPSRouteService s; @Override public Component getTable() { return new MTable<Update>(s::fetc
@Inject
GPSRouteService s;
@Override
public Component getTable() {
return new MTable<Update>(s::fetchUpdates, s::getEntityCount)
.withFullWidth();
}
@Inject
GPSRoutes服务;
@凌驾
公共组件getTable(){
返回新的MTable(s::fetchUpdates,s::getEntityCount)
.带全宽();
}
上面的代码示例来自,它显示了Vaadin中的各种延迟加载方法。如果您是Spring用户,请查看,它连接到Spring数据JPA存储库,并且还使用可选的排序支持
我是Viritin的维护者,但我也维护了Vaadin和各种附加组件7年,现在我正在为Vaadin做技术营销。Lazy loading在Vaadin 8中完全重新设计并得到了开箱即用的良好支持。下面是一个例子:
DataProvider DataProvider=新的后端数据提供程序(
//第一次回调基于查询获取项目
查询->{
//要加载的第一项的索引
int offset=query.getOffset();
//要加载的项目数
int limit=query.getLimit();
List persons=getPersonService().fetchPersons(偏移量、限制);
returnpersons.stream();
},
//第二个回调获取查询的项数
查询->getPersonService().getPersonCount()
);
网格=新网格();
grid.setDataProvider(数据提供者);
惰性加载在表(以及大多数其他组件)中实现。但是为了让它工作,你需要一个能够正确处理它的容器。请告诉我一个我使用的容器类型,你的数据是以什么方式存储的?你能分享一个关于如何使用这个病毒来实现LazyLoading的示例代码吗?更新答案以包含指向“完整堆栈”示例的链接,这两个示例都是针对JPA后端的,但同样的方法也适用于大多数其他后端。
DataProvider<Person, Void> dataProvider = new BackendDataProvider<>(
// First callback fetches items based on a query
query -> {
// The index of the first item to load
int offset = query.getOffset();
// The number of items to load
int limit = query.getLimit();
List<Person> persons = getPersonService().fetchPersons(offset, limit);
return persons.stream();
},
// Second callback fetches the number of items for a query
query -> getPersonService().getPersonCount()
);
Grid<Person> grid = new Grid<>();
grid.setDataProvider(dataProvider);