【问题标题】:SDN4 custom query pagination alternative for Page contents页面内容的 SDN4 自定义查询分页替代方案
【发布时间】:2015-08-14 23:47:06
【问题描述】:

目前 SDN4 不支持分页(参考:Paging and sorting in Spring Data Neo4j 4

可以自己指定 SKIP 和 LIMIT 子句来检索部分结果,但是对于我们的系统,我们还需要执行自定义分页查询时返回的 Page 的 getTotalPages()、isFirst() 和 isLast() 值.

我们是否有其他方法可以使用 SDN4 / OGM 检索这些值?或者,是否有任何代码建议/参考可供我们自己实现(可能在 Page 对象的构造中)?

谢谢!

【问题讨论】:

  • 您使用的是哪个版本的 SDN4?您是否尝试过最新的快照版本?
  • @ATG 我们目前正在使用最新的快照版本。看来这个功能不会很快实现:jira.spring.io/browse/DATAGRAPH-653

标签: java spring neo4j pagination spring-data-neo4j-4


【解决方案1】:

正如您所收集的,支持 Spring 的 Page 对象的 OGM 中的 Pagination 对象不使用页数或返回一个。 Spring 的 Page 对象提供了一种返回总页数的方法,但这取决于底层实现 - Mongo、JPA、Neo4j 等。 Spring 的 Page 对象使用这个值来确定是否存在“下一个”页面。我们的实现通过告诉 Spring 它总是这样做来“欺骗”——直到对新页面的请求返回的结果少于一页。

不幸的是,没有通用的方法来返回不涉及首先查找所有结果然后计算它们的页数。对可能返回数千行的自定义查询执行此操作会明显存在服务器堆空间不足的风险。 (请注意,Neo4j 中使用 SKIP 和 LIMIT 的底层实现不必将所有结果预加载到内存中,因此不会遇到此问题)。

【讨论】:

    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多