chore: Use implicit default loading rather than explicit joined eager loading #1961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
A rehash of #1959 but, per #1959 (comment), rather than explicitly defining the form of the relationship loading rely instead on the implicit definition of the specific model relationships (which defaults to lazy per here). This helps to ensure that the optimal loading technic is used for each specific implementation/use case.
See Relationship Loading Techniques for the various relationship loading techniques which are supported by SQLAlchemy which fall into one of three categories: lazy, eager, or none. Lazy implies delayed loading and results in N +1 queries, whereas eager loading "eagerly" loads items alongside the parent—either using a separate
SELECT
statement or usingJOIN
clause (which can lead to a multiplicative issue when the parent has multiple relationships).ADDITIONAL INFORMATION