您如何为 ORM 的分页定义中继连接?

Posted

技术标签:

【中文标题】您如何为 ORM 的分页定义中继连接?【英文标题】:How do you define a relay connection for pagination against an ORM? 【发布时间】:2015-12-11 19:48:35 【问题描述】:

我查看了 Relay 的所有文档,但似乎没有关于如何使用 ORM 建立 Relay 连接的简单说明。所有示例似乎都使用connectionFromArray 方法,如果您将数据存储在内存中,这很好,但是当您将数据存储在数据库中时,您将如何提供连接分页工作所需的信息?

【问题讨论】:

【参考方案1】:

光标为opaque:

Relay 认为此字段的结果是不透明的,但会按照下面“参数”部分中的说明传回服务器。

因此,根据您的数据模型,将像 ID 字符串这样简单的内容作为游标传递可能是合适的,然后您可以在服务器上使用它来使用像 WHERE id > ? 这样的子句加载连接。例如,您可以在此处打包分页所需的任意信息并对其进行 Base-64 编码。

如果您查看the code which returns a connection from an array,您将大致了解您需要在 ORM 支持的存储之上实现的语义,但您不会像它那样对数组进行索引,而是正在合成一个不透明的光标,其中包含足够的信息以使用您的 ORM 进行后续分页。

【讨论】:

感谢您的链接,他们帮助了很多!如果我可以清理我整理的这段代码,也许我会在这里发布以供将来参考。

以上是关于您如何为 ORM 的分页定义中继连接?的主要内容,如果未能解决你的问题,请参考以下文章

小程序中的分页查询

用于 Java-GraphQL 服务器的 Java 中基于中继的分页

多表连接的分页sql语句:

如何从两个不同的中继连接中删除共享节点?

如何为滑块的分页按钮创建简单的下一个和上一个触发按钮?

查询后经过后台处理的数据的分页显示