SQLAlchemy:急切加载多个关系

时间:2015-10-06 22:42:13

标签: python sqlalchemy

我想查询这个结构:

A -> B
B -> C
B -> D

使用Load接口执行此操作的语法是什么,文档不是很明确(http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalchemy.orm.joinedload)。我只看到该怎么做:

A -> B
B -> C
C -> D

鉴于查询:

query(A).options(joinedload(A.b).joinedload(B.c))

如何在链中向后移动以指定B(B.d)上的第二个关系?

1 个答案:

答案 0 :(得分:15)

只需添加另一个.options(...)新关系路径:

q = (
    session
    .query(A)
    .options(joinedload(A.b).joinedload(B.c))
    .options(joinedload(A.b).joinedload(B.d))
)