我在PostgreSQL中有一些简单的表,我的模型定义如下:
for ( int i = 0; i < [publishPermissions count]; i++)
{
if ( ![publishSession.permissions containsObject:[publishPermissions objectAtIndex:i]] )
{
release = true;
publishError = [[NSError alloc] initWithDomain:@"com.facebook" code:123 userInfo:nil];
break;
}
}
其中Child有一个名为parent_id的FK,指向Parent。
当我加载父项时,我希望它的子项立即加载一个join语句,这就是这个定义所做的。
但是,如果父级没有子级,则不会为父级添加如下语句:
class Parent(Base):
children = relationship('Child', backref='parent', innerjoin=True, lazy='joined')
class Child(Base):
pass
Raw SQL + SQLAlchemy:
parent = session.query(Parent).get(parent_id)
parent == None
答案 0 :(得分:0)
我发现您可以使用sqlalchemy.orm.lazyload
>>> session.query(Parent).options(lazyload('children')).get(147195) == None
False