pto*_*tou 8 python sqlalchemy eager-loading
我有这样的结构:
class User(DeclarativeBase):
...
teamMemberships = orm.relationship("TeamXREF",backref="user",lazy = "dynamic")
class TeamXREF(DeclarativeBase):
...
class Team(DeclarativeBase):
...
name=db.Column(String)
teamMembers = orm.relationship("TeamXREF",backref="team",lazy = "dynamic")
Run Code Online (Sandbox Code Playgroud)
但是,我无法设法写入 1 个查询(我总是以循环和多个查询结束)来立即加载所有这些信息:
您可以尝试仅显式加载查询中的项目,而不是将其硬编码到关系中。像这样的东西:
from sqlalchemy.orm import joinedload
Session.query(User).options(joinedload('teamMemberships').joinedload('team').joinedload('teamMembers').joinedload('user'))
Run Code Online (Sandbox Code Playgroud)
http://docs.sqlalchemy.org/en/improve_toc/orm/loading_relationships.html#loading-along-paths