2015-09-15 1 views
7

J'ai parcouru toute la documentation de Relay et il ne semble pas y avoir une explication simple sur la façon de construire une connexion Relay avec un ORM. Tous les exemples semblent utiliser la méthode connectionFromArray qui est bien si vous stockez vos données en mémoire, mais lorsque vous stockez les données dans une base de données comment feriez-vous de fournir les informations nécessaires à la connexion d'une pagination à travailler?Comment définissez-vous une connexion de relais pour la pagination contre un ORM?

Répondre

6

Le curseur est opaque:

Le résultat de ce champ est considéré comme opaque par relais, mais sera transmis au serveur comme décrit dans la section « Arguments » ci-dessous.

Ainsi, selon votre modèle de données, il peut être approprié de passer quelque chose d'aussi simple que d'une chaîne d'ID comme un curseur, que vous pouvez ensuite utiliser sur le serveur pour charger la connexion en utilisant une clause comme WHERE id > ?. Vous pouvez empaqueter ici des informations arbitraires nécessaires pour la pagination et Base-64 l'encoder, par exemple.

Si vous regardez the code which returns a connection from an array, vous aurez une idée approximative de la sémantique que vous aurez besoin de mettre en œuvre au-dessus de votre stockage ORM-soutenu, mais au lieu d'indexer dans le tableau comme il le fait, vous serez synthétiser un curseur opaque qui contient suffisamment d'informations pour effectuer une pagination ultérieure avec votre ORM.

+0

Merci pour les liens, ils ont beaucoup aidé! Si je peux nettoyer ce code que j'ai mis ensemble peut-être que je vais le poster ici pour référence future. – vincentriemer

+0

@vincentriemer Salut! Tout ce que vous pouvez nous montrer encore ?? –

+0

oui @vincentriemer, ce serait génial :) –