【发布时间】:2015-11-27 01:31:06
【问题描述】:
我有一个 SQLAlchemy 模型 Foo,其中包含一个延迟加载关系 bar,它指向另一个也具有延迟加载关系 foobar 的模型。
正常查询时,我会使用此代码来确保所有对象都使用单个查询加载:
session.query(Foo).options(joinedload('bar').joinedload('foobar'))
但是,现在我有一个基类已经为我提供了一个使用 session.query(Foo).one() 检索的 Foo 实例的情况,因此关系是延迟加载的(这是默认值,我不想改变它)。
对于单层嵌套,我不介意在访问 foo.bar 时加载它,但由于我还需要访问 foo.bar[x].foobar,所以我更愿意避免在循环中发送查询(每当我访问foobar)。
我正在寻找一种方法让 SQLAlchemy 加载 foo.bar 关系,同时还为 foobar 使用 joinedload 策略。
【问题讨论】:
标签: python sqlalchemy