5 ms·
If you have two fields in a query, does that mean two resolve functions? If I using a SQL database and the two fields were stored on two columns on the same tab
by xtrumanx 11y ago
If you have two fields in a query, does that mean two resolve functions? If I using a SQL database and the two fields were stored on two columns on the same table, wouldn't that cause 2 SQL queries to be run?
- verbin217 11y agoYes. But only one http request. If they're both the same query but access a different field you might be able to cache it.
- devit 11y agoSangria in Scala has a mechanism called "Deferred" that lets you specify that it should ask you to resolve objects of a certain type all at once at the end, and you would do a single SQL query per object type there. If the JavaScript implementation doesn't have something like this, perhaps it can be hacked on top.
- leebyron 11y agoOnly if each field required loading a new row, and even then batching can be used to turn this back into one query. eg: { firstName, lastName } doesn't need to load new rows but { mother { name }, father { name } } does need to load new rows. DataLoader (https://github.com/facebook/dataloader https://github.com/facebook/dataloader) is a small utility which makes batching and caching database requests straight forward.