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。