首页 > 解决方案 > 使用分页 JPA Postgresql 检索元素的全局索引

问题描述

在我的项目中有一个检索文档列表的服务。到目前为止,检索它们的方法是使用分页对象,这样我们就不会将所有元素发送回前端。

public Page<Document> findDocumentPage(Pageable pageable) {
    return this.documentService.findAllByPage(pageable);
}

问题是我需要所有页面的文档的全局索引。例如,假设我有一个页面列表,其中包含查询后的结果:

firstResult:{
    page: 1,
    document_list: [{doc:{ id: a, content: ''}},
                    {doc:{ id: b, content: ''}},
                    {doc:{ id: c, content: ''}}]
    }

    secondResult:{
        page: 2,
        document_list: [{doc:{ id: d, content: ''}},
                        {doc:{ id: e, content: ''}},
                        {doc:{ id: f, content: ''}}]
    }
}

这些结果彼此独立。有没有办法告诉 id 为“e”的文档是所有页面结果中的第 5 个元素,而无需访问前一页的结果。页面也可以有不同的大小,有些可能有 30 个结果,其他 20 个,可以是 x。

我可以在后端存储一个包含前几页元素数量的列表,然后根据页码、当前页面上的索引和前几页的大小计算索引。然而,这对我来说似乎不是一个很好的解决方案。

标签: jsonspringjpaspring-data-jpapageable

解决方案


推荐阅读