分析Simtay SimpleCRUD上的文件LazyUserDataModel.java时出错

分析Simtay SimpleCRUD上的文件LazyUserDataModel.java时出错,java,primefaces,netbeans-8,Java,Primefaces,Netbeans 8,我最近下载了Simtay的这个应用程序。我在Netbeans 8.0.1上加载了该项目,并添加了必要的库。我得到这个错误: @凌驾 类上的公共列表加载(int first、int pageSize、String sortField、SortOrder SortOrder、Map filters) LazyUserDataModel.java 下面是课堂 package com.nz.simplecrud.controller; import com.nz.simplecrud.entity.

我最近下载了Simtay的这个应用程序。我在Netbeans 8.0.1上加载了该项目,并添加了必要的库。我得到这个错误:

@凌驾 类上的公共列表加载(int first、int pageSize、String sortField、SortOrder SortOrder、Map filters)

LazyUserDataModel.java

下面是课堂

package com.nz.simplecrud.controller;


import com.nz.simplecrud.entity.User;
import com.nz.simplecrud.service.DataAccessService;
import com.nz.simplecrud.util.LazySorter;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

/**
 * 
 * Custom Lazy User DataModel which extends PrimeFaces LazyDataModel.
 * For more information please visit http://www.primefaces.org/showcase-labs/ui/datatableLazy.jsf
 */

public class LazyUserDataModel extends LazyDataModel<User> implements Serializable{

    // Data Source for binding data to the DataTable
    private List<User> datasource;
    // Selected Page size in the DataTable
    private int pageSize;
    // Current row index number
    private int rowIndex;
    // Total row number
    private int rowCount;
    // Data Access Service for create read update delete operations
    private DataAccessService crudService;

    /**
     *
     * @param crudService
     */
    public LazyUserDataModel(DataAccessService crudService) {
        this.crudService = crudService;
    }

    /**
     * Lazy loading user list with sorting ability
     * @param first
     * @param pageSize
     * @param sortField
     * @param sortOrder
     * @param filters
     * @return List<User>
     */ 
    @Override
    public List<User> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters) {
        datasource = crudService.findWithNamedQuery(User.ALL, first, first + pageSize);
        // if sort field is not null then we sort the field according to sortfield and sortOrder parameter
        if(sortField != null) {  
            Collections.sort(datasource, new LazySorter(sortField, sortOrder));  
        } 
        setRowCount(crudService.countTotalRecord(User.TOTAL));   
        return datasource;
    }

    /**
     * Checks if the row is available
     * @return boolean
     */
    @Override
    public boolean isRowAvailable() {
        if(datasource == null) 
            return false;
        int index = rowIndex % pageSize ; 
        return index >= 0 && index < datasource.size();
    }

    /**
     * Gets the user object's primary key
     * @param user
     * @return Object
     */
    @Override
    public Object getRowKey(User user) {
        return user.getId().toString();
    }

    /**
     * Returns the user object at the specified position in datasource.
     * @return 
     */
    @Override
    public User getRowData() {
        if(datasource == null)
            return null;
        int index =  rowIndex % pageSize;
        if(index > datasource.size()){
            return null;
        }
        return datasource.get(index);
    }

    /**
     * Returns the user object that has the row key.
     * @param rowKey
     * @return 
     */
    @Override
    public User getRowData(String rowKey) {
        if(datasource == null)
            return null;
       for(User user : datasource) {  
           if(user.getId().toString().equals(rowKey))  
           return user;  
       }  
       return null;  
    }


    /*
     * ===== Getters and Setters of LazyUserDataModel fields
     */


    /**
     *
     * @param pageSize
     */
    @Override
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * Returns page size
     * @return int
     */
    @Override
    public int getPageSize() {
        return pageSize;
    }

    /**
     * Returns current row index
     * @return int
     */
    @Override
    public int getRowIndex() {
        return this.rowIndex;
    }

    /**
     * Sets row index
     * @param rowIndex
     */
    @Override
    public void setRowIndex(int rowIndex) {
        this.rowIndex = rowIndex;
    }

    /**
     * Sets row count
     * @param rowCount
     */
    @Override
    public void setRowCount(int rowCount) {
        this.rowCount = rowCount;
    }

    /**
     * Returns row count
     * @return int
     */
    @Override
    public int getRowCount() {
        return this.rowCount;
    }

    /**
     * Sets wrapped data
     * @param list
     */
    @Override
    public void setWrappedData(Object list) {
        this.datasource = (List<User>) list;
    }

    /**
     * Returns wrapped data
     * @return
     */
    @Override
    public Object getWrappedData() {
        return datasource;
    }
}
package com.nz.simplecrud.controller;
导入com.nz.simplecrud.entity.User;
导入com.nz.simplecrud.service.DataAccessService;
导入com.nz.simplecrud.util.LazySorter;
导入java.io.Serializable;
导入java.util.Collections;
导入java.util.List;
导入java.util.Map;
导入org.primefaces.model.LazyDataModel;
导入org.primefaces.model.SortOrder;
/**
* 
*扩展PrimeFaces LazyDataModel的自定义惰性用户数据模型。
*欲了解更多信息,请访问http://www.primefaces.org/showcase-labs/ui/datatableLazy.jsf
*/
公共类LazyUserDataModel扩展LazyDataModel实现可序列化{
//用于将数据绑定到DataTable的数据源
私有列表数据源;
//数据表中选定的页面大小
私有int页面大小;
//当前行索引号
私有索引;
//总行数
私有整数行数;
//用于创建读取更新删除操作的数据访问服务
私有数据访问服务crudService;
/**
*
*@param crudService
*/
公共LazyUserDataModel(DataAccessService crudService){
this.crudService=crudService;
}
/**
*延迟加载具有排序功能的用户列表
*@param-first
*@param pageSize
*@param sortField
*@param sortOrder
*@param过滤器
*@返回列表
*/ 
@凌驾
公共列表加载(int-first、int-pageSize、字符串排序字段、排序器排序器、映射过滤器){
datasource=crudService.findWithNamedQuery(User.ALL、first、first+pageSize);
//如果sort字段不为null,则根据sortfield和sortOrder参数对字段进行排序
如果(sortField!=null){
分类(数据源,新懒散分类机(sortField,sortOrder));
} 
setRowCount(crudService.countTotalRecord(User.TOTAL));
返回数据源;
}
/**
*检查该行是否可用
*@返回布尔值
*/
@凌驾
公共布尔值isRowAvailable(){
如果(数据源==null)
返回false;
int index=行索引%pageSize;
返回索引>=0&&index数据源.size()){
返回null;
}
返回datasource.get(索引);
}
/**
*返回具有行键的用户对象。
*@param rowKey
*@返回
*/
@凌驾
公共用户getRowData(字符串rowKey){
如果(数据源==null)
返回null;
对于(用户:数据源){
if(user.getId().toString().equals(rowKey))
返回用户;
}  
返回null;
}
/*
*====LazyUserDataModel字段的getter和setter
*/
/**
*
*@param pageSize
*/
@凌驾
公共void setPageSize(int pageSize){
this.pageSize=页面大小;
}
/**
*返回页面大小
*@return int
*/
@凌驾
public int getPageSize(){
返回页面大小;
}
/**
*返回当前行索引
*@return int
*/
@凌驾
public int getRowIndex(){
返回此.rowIndex;
}
/**
*设置行索引
*@param行索引
*/
@凌驾
公共void setRowIndex(int-rowIndex){
this.rowIndex=rowIndex;
}
/**
*设置行数
*@param rowCount
*/
@凌驾
公共void setRowCount(int rowCount){
this.rowCount=rowCount;
}
/**
*返回行计数
*@return int
*/
@凌驾
public int getRowCount(){
返回此.rowCount;
}
/**
*设置包装数据
*@param列表
*/
@凌驾
public void setWrappedData(对象列表){
this.datasource=(List)List;
}
/**
*返回包装数据
*@返回
*/
@凌驾
公共对象getWrappedData(){
返回数据源;
}
}
有什么帮助吗???

覆盖规则

参数列表应与重写的参数列表完全相同 方法。返回类型应与返回类型相同或为返回类型的子类型 在超类的原始重写方法中声明的类型

类具有名为load(Primefaces 5)的方法

公共列表加载(int-first、int-pageSize、字符串排序字段、排序器排序器、映射过滤器){
抛出新的UnsupportedOperationException(“未实现延迟加载”);
}
如果使用Primefaces 5,则只能在LazyUserDataModel中重写上述方法

自方法

load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters)
load(int-first、int-pageSize、字符串排序字段、排序器排序器、映射过滤器)
LazyDataModel
(PF5)中不存在此错误是正常的

那么如何解决呢

映射过滤器
更改为
映射过滤器
(为了覆盖,需要具有相同的签名)


注意:Simtay项目是使用PF3.4编写的。

您使用的是哪个版本的Primefaces?您是否尝试添加方法public List load(int first、int pageSize、String sortField、SortOrder SortOrder、,
load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,String> filters)