SQLAlchemy: 延迟列可以预加载吗?

3 投票
1 回答
1123 浏览
提问于 2025-04-16 17:36

我有一个使用声明式方式创建的SQLAlchemy对象,这个对象里有一些延迟加载的列,像这样声明:

class Review(Base):
    __tablename__ = 'review'

    id = Column(Integer, primary_key=True)
    name = Column(String(255))
    large_field = deferred(Column(Text))

有时候我希望查询能够提前加载这些列,或者说“取消延迟加载”。我尝试过这样做,但查看生成的SQL输出时发现并没有什么变化。

reviews = session.query(Review).options(eagerload('large_field')).all():

那有没有办法选择性地提前加载呢?

1 个回答

撰写回答