使用Java实现分页(命名查询)

使用Java实现分页(命名查询),java,arraylist,pagination,named-query,Java,Arraylist,Pagination,Named Query,下面是一个场景。我有一个页面显示了所有记录的列表(没有分页) 现在在后端,通过对每个部分的两个单独的命名查询组合来检索记录(每个查询一个用于part1/part2的实际记录/计数) 现在我需要为相同的文件实现分页。 因此,我使用一个自定义类PagedResponse来实现同样的功能 这实际上只包括两件事 private Long totalRecords; private List<T> records; 私有长记录; 私人名单记录; 我还使用一个自定义方法runPaginate

下面是一个场景。我有一个页面显示了所有记录的列表(没有分页)

现在在后端,通过对每个部分的两个单独的命名查询组合来检索记录(每个查询一个用于part1/part2的实际记录/计数)

现在我需要为相同的文件实现分页。 因此,我使用一个自定义类PagedResponse来实现同样的功能 这实际上只包括两件事

private Long totalRecords;
private List<T> records;
私有长记录;
私人名单记录;
我还使用一个自定义方法runPaginatedQuery返回分页响应

protected <T> PagedResponse<T> runPaginatedQuery(Query query, Query cntQuery, int startingResult, int maxResults) {

}
protected PagedResponse runPaginatedQuery(查询查询、查询cntQuery、int startingResult、int maxResults){
}
我的问题是,因为我有两个单独的命名查询,如果我为每个命名查询调用runPaginatedQuery方法2次,这对我没有帮助,因为每次调用的最大结果都会增加。 如何在Java端处理相同的问题?请让我知道。
我已经准备好处理UI了。

我曾经遇到过类似的问题。不要使用两个查询,使用一个查询并对其进行参数化,使其使用
LIMIT
,例如,使用一个变量指示当前页面的数量,并使用一些常量定义在一个页面上将获得多少结果

然后你会有类似

 LIMIT :offset, :resultsLimit
您正在将
offset
设置为类似
(第1页)*每页默认限制
,并将
resultsLimit
设置为
每页默认限制


希望有帮助

Thx很多…那么这是对命名查询本身的修改…还是对executePaginatedQuery方法的任何更新?出于某些原因,我现在意识到我无法合并这两个查询,因为它们是有条件调用的…所以在某些情况下,它可能只是1,在其他情况下,这两个查询也可以被调用…所以我需要看看可以在分页java代码中处理的东西,您可以发布所有相关的代码吗,特别是查询?
 LIMIT :offset, :resultsLimit