Jsf Primefaces LazyDataModel和过滤器

Jsf Primefaces LazyDataModel和过滤器,jsf,primefaces,datatable,Jsf,Primefaces,Datatable,对不起我的英语。我已经厌倦了课程: public类厌倦了{ 公共价格; 公共投资; //出发 } 和一份表格: 我想使用带有primefaces dataTable和LazyDataModel的表单进行分页 我是否可以将TireDTO而不是Map filters 更新 我尝试了TireMB: @PostConstruct 公共void init(){ //+getter,setter lazyModel=新的LazyDataModel(){ 私有静态最终长serialVersionUID=

对不起我的英语。我已经厌倦了课程:

public类厌倦了{
公共价格;
公共投资;
//出发
}
和一份表格:


我想使用带有primefaces dataTable和
LazyDataModel的表单进行分页

我是否可以将
TireDTO
而不是
Map filters

更新 我尝试了
TireMB

@PostConstruct
公共void init(){
//+getter,setter
lazyModel=新的LazyDataModel(){
私有静态最终长serialVersionUID=1L;
@凌驾
公共列表加载(int first,int pageSize,String sortField,
排序器(排序器、映射过滤器){
返回getDao().getResultList(getTireDTO(),第一个,pageSize);
}
};
lazyModel.setRowCount(20);
}

也许有更好的解决办法。

你试过吗?如果没有,为什么不呢?是的。我试过了。我更新了帖子。但也许有更好的解决办法。更好。。。较好的也许不同。。。但在我看来,这是一个不错的解决方案。我使它完全通用,而不是一个对象,我传入了一个额外的映射,它与load方法中的映射相结合,并通过JPA criteria api,以一种完全动态和灵活的方式使用datatable中的过滤和额外的过滤器(“高级”)甚至请求参数(因此过滤器成为可书签的)如果您通过在所讨论的托管bean的方法或实例成员中声明它来显式公开
LazyDataModel
,那么它实际上并不是懒惰的,即使它像您可能相信的那样被延迟加载。懒惰就是懒惰。它应该只在显式请求时发生,并且应该与显式请求的信息量(分页、排序、排序等)紧密同步。否则,加载应该总是不同的。不需要采取任何明确的行动-在某个地方声明它,然后使用它(无论showcase示例以不同的方式演示它)@Tiny:LazyDataModel本身并不懒惰,没有问题。因为每次分页/filter/sort/时都会调用load方法。。您将获得新的数据,这些数据与所请求的数据紧密耦合。这对我来说很有效,尽管我做的有点不同。