我不确定这是否可能,但我在使用sqlacalchemy的sqlite中有一个层次结构类型的结构。
在我的层次结构中,我希望向用户指示父级具有子级,而不需要加载所有子级。
我知道sqlAlchemy使用的是延迟加载,但是当我访问relationship属性时,整个列表就被加载了。由于一个父级可以有数千个子级,这对于测试来说是相当大的性能开销。
children != None
.
目前的关系定义如下:
children = relationship('child',
cascade='all',
backref=backref('parent'),
)
我目前测试儿童使用:
qry = session.query(parenttable).all()
for parent in qry:
if parent.children != None:
childrenindication = [{'Name': '...'}]
else:
childrenindication = []
hierarchylist.append({
'Name': parent.name,
'Children': childrenindication
})
如果有一个更友好的方式来做这件事,那就太好了。