Motivation: When fetching stuff from storage, we often want to fetch related objects. By doing this in one call, we do not only gain convenience, but give some backends the chance to optimize fetching, for example by generating JOINs in SQL backends.
Design considerations:
When fetching an object, we want control over which child and parent objects are also fetched
When want to be able to filter fetched relationships (give me all customers of this company with an age over 21)
We want to be able to filter objects by their children (give me all customers with an active e-mail)
Motivation: When fetching stuff from storage, we often want to fetch related objects. By doing this in one call, we do not only gain convenience, but give some backends the chance to optimize fetching, for example by generating JOINs in SQL backends.
Design considerations:
Example: