-
Notifications
You must be signed in to change notification settings - Fork 77
Open
Description
I have these entities:
- Golang struct:
type Player struct {
ID int
CreatedAt time.Time
City City
CityID int
Team *Team
TeamID *int
Score int
}- GraphQL schema:
type Player {
id: ID!
createdAt: Time!
City: City!
Team: Team
Score: Int!
}As you can see:
-
Cityis mandatory -
Team(andTeamIDin Golang struct) is NOT mandatory, so I'm using a pointer type (*)
What I don't understand now is how to use dataloaden (a GraphQL dataloader).
Here the generated code for CityById loader, generated with: go run github.com/vektah/dataloaden CityByIdLoader int *my_project/entities.City:
CityById: CityByIdLoader{
maxBatch: 100,
wait: 1 * time.Millisecond,
fetch: func(keys []int) ([]*entities.City, []error) {
cities, err := myRepo.CitiesByKeys(keys)
// directly ordered in DB based on keys` order: it works
return cities, []error{err}
},
},What about []*int for TeamID?
Here's the generated code for TeamById loader, generated with: go run github.com/vektah/dataloaden TeamByIdLoader *int *my_project/entities.Team:
TeamById: TeamByIdLoader{
maxBatch: 100,
wait: 1 * time.Millisecond,
fetch: func(keys []int) ([]*entities.Team, []error) {
teams, err := myRepo.TeamsByKeys(keys)
// I cannot order in DB because of `NULL` keys, right?
// How to order these results?
return teams, []error{err}
},
},I don't understand how to re-order teams by keys if I cannot do it in DB because of NULL values in keys.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels