【发布时间】:2016-02-16 09:11:48
【问题描述】:
我是 Hibernate 和 JPA 的新手。我正在尝试通过过滤实现分页。 由于这个原因,我现在使用 2 个查询:
query = em.createQuery("SELECT l from LoanAccount l where l."+filterColumn +" LIKE :filterValue and l.assignedBranchKey=:TaskID order by l." + orderByColumnID +" " + orrderByASC);
q = em.createQuery("SELECT count(l.id) from LoanAccount l where l."+filterColumn +" LIKE :filterValue and l.assignedBranchKey=:TaskID");
query.setParameter("filterValue", "%"+filterValue+"%");
q.setParameter("filterValue", "%"+filterValue+"%");
q.setParameter("TaskID", TaskID);
query.setParameter("TaskID", TaskID);
query.setFirstResult(page*count-count);
query.setMaxResults(count);
result.setMaxResults((Long)q.getSingleResult());
result.setData(query.getResultList());
return result;
所以我在第一个查询中设置了第一个和最后一个结果,所以我无法获取列表并获取它的大小。这就是为什么我创建了第二个查询并在不设置第一个和最后一个结果的情况下使用它 - 以获得分页的准确行数。
页面 - 用户现在看到的页面
count - 该页面应该有多少行
是否可以结合这两个查询?如果是,我该怎么做?
【问题讨论】: