I try to implement a solution that uses graphql-java and dataloader over a database.
I would like to know the best pratice to load a many relations when the nested ids required a database query.
in the documentation example, imagine that we replace starWarsCharacter.getFriendsIds() by a database query getFriendIdsFromDB(starWarsCharacter).
The friendsDataFetcher would looks like :
DataFetcher friendsDataFetcher = new DataFetcher() {
@Override
public Object get(DataFetchingEnvironment environment) {
StarWarsCharacter starWarsCharacter = environment.getSource();
List<String> friendIds = getFriendIdsFromDB(starWarsCharacter);
return characterDataLoader.loadMany(friendIds);
}
};
In this case it generates again a N+1 fetch problem. For each Character we have to query for the friends ids.
How to efficiently manage that case with the dataloader?
I try to implement a solution that uses graphql-java and dataloader over a database.
I would like to know the best pratice to load a many relations when the nested ids required a database query.
in the documentation example, imagine that we replace
starWarsCharacter.getFriendsIds()by a database querygetFriendIdsFromDB(starWarsCharacter).The
friendsDataFetcherwould looks like :In this case it generates again a N+1 fetch problem. For each Character we have to query for the friends ids.
How to efficiently manage that case with the dataloader?