Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF2.2如何对数据表进行排序(显示首先创建的最后一项)_Java_Jsf_Jsf 2_Datatable - Fatal编程技术网

Java JSF2.2如何对数据表进行排序(显示首先创建的最后一项)

Java JSF2.2如何对数据表进行排序(显示首先创建的最后一项),java,jsf,jsf-2,datatable,Java,Jsf,Jsf 2,Datatable,您好,我正在尝试对数据表进行排序,以便用户创建的最后一项显示为表中的第一项 ..... 这是我的页码 public PaginationHelper getPagination() { if (pagination == null) { pagination = new PaginationHelper(5) { @Override public int getItemsCount() {

您好,我正在尝试对数据表进行排序,以便用户创建的最后一项显示为表中的第一项


.....
这是我的页码

public PaginationHelper getPagination() {
    if (pagination == null) {
        pagination = new PaginationHelper(5) {
            @Override
            public int getItemsCount() {
                return getFacade().count();
            }

            @Override
            public DataModel createPageDataModel() {
                return new ListDataModel(getFacade().findRange(new int[]{getPageFirstItem(), getPageFirstItem() + getPageSize()}));
            }
        };
    }
    return pagination;
}
公共抽象类分页帮助器{

private int pageSize;
private int page;

public PaginationHelper(int pageSize) {
    this.pageSize = pageSize;
}

public abstract int getItemsCount();

public abstract DataModel createPageDataModel();

public int getPageFirstItem() {
    return page * pageSize;
}

public int getPageLastItem() {
    int i = getPageFirstItem() + pageSize - 1;
    int count = getItemsCount() - 1;
    if (i > count) {
        i = count;
    }
    if (i < 0) {
        i = 0;
    }
    return i;
}

public boolean isHasNextPage() {
    return (page + 1) * pageSize + 1 <= getItemsCount();
}

public void nextPage() {
    if (isHasNextPage()) {
        page++;
    }
}

public boolean isHasPreviousPage() {
    return page > 0;
}

public void previousPage() {
    if (isHasPreviousPage()) {
        page--;
    }
}

public int getPageSize() {
    return pageSize;
}

最后用JPA进行排序

    javax.persistence.criteria.CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
    javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
    javax.persistence.criteria.Root<Offer> e = cq.from(Offer.class);
    cq.orderBy(cb.desc(e.get("id")));
    return getEntityManager().createQuery(cq.getResultList();
javax.persistence.criteria.CriteriaBuilder cb=getEntityManager().getCriteriaBuilder();
javax.persistence.CriteriaQuery cq=getEntityManager().getCriteriaBuilder().createQuery();
javax.persistence.criteria.Root e=cq.from(Offer.class);
订购人(cb.desc(e.get(“id”));
返回getEntityManager().createQuery(cq.getResultList();

在Java EE 7 API中有6个标准实现,在特定堆栈中有一个未知的数字。答案取决于数据源。@McDowell数据源是什么意思?我应该在jpa层中对quey的结果进行排序吗?@Ignaciograt如果这是一个数据库支持的源,那么在数据库中进行排序可能会更好而不是在视图中排序。但这取决于您的系统架构和特定查询所涉及的数据大小。@McDowell是mysql,但我希望在分页中对其进行排序,我使用jsf 2.2和tomcat。