graphql/dataloader

[QUESTION] Any recommendations for using DataLoader with pivot tables?

Open

#289 aberto em 29 de dez. de 2021

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (556 forks)batch import
help wanted

Métricas do repositório

Stars
 (12.520 stars)
Métricas de merge de PR
 (Mesclagem média 5d 2h) (1 fundiu PR em 30d)

Description

Pivot tables are often used in relational databases to define one-to-many relationships.

In my case I'm using Adonis.js's Lucid ORM in my GraphQL resolvers, but things get a little tricky when loading relationships that use a pivot table. For example:

const user = await context.loaders.userById.load(input.id);
const posts = await user.posts().fetch();

// Since I didn't use a loader to fetch posts, I now have to prime the cache manually:
for (let post of posts.rows) {
  context.loaders.postById.prime(post.id, post);
}

The downside to this is I lose the simplicity of only using my loaders to grab data, and I have to remember to manually priming my cache even when I might not need the data again.

Guia do colaborador