我正在使用带有查询的python @property从相关模型中获取第一行。然后,我从“父”检索多行。然后,对于每个父行,@ property中的查询将被调用一次。这会导致性能不佳。
感谢您的帮助。
我玩过column_property,但是还没有找到一种方法来拉回整个子行。
父类(模型):
id = db.Column(db.Integer, primary_key=True)
...
children = relationship('Child', lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True)
@property
def latest_script_report(self):
return db.session.query(Child) \
.filter(child.parent_id == self.id) \
.order_by(Child.updated_at.desc()) \
.first()
子类(模型):
id = db.Column(db.Integer, primary_key=True)
updated_at = Column(DateTime,
default=datetime.utcnow,
server_default=text("CURRENT_TIMESTAMP"),
onupdate=datetime.utcnow,
nullable=False)
parent_id = ReferenceCol('parent', cascade=True, nullable=False, index=True)
parent = relationship('Parent',
foreign_keys='Child.parent_id')
... more child columns