多态集合类层次结构的紧急加载

2024-06-01 14:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我的声明类声明如下所示:

class ExportJob(db.Model):
    # has foreign key to paramset
    backgroundtask = db.relationship(BackgroundTask, backref="exportjob")
    params = db.relationship("ParamSet")

class ParamSet(db.Model):
    __tablename__ = "paramset"
    paramvalues = db.relationship("Param", backref="paramset")    

class Param(db.Model):
    __tablename__ = "param"

    id = db.Column(db.Integer, primary_key=True)
    paramset_id = fkey("paramset", index=True)

    name = db.Column(db.Unicode(50), nullable=False)
    type = db.Column(db.Unicode(10))

    __mapper_args__ = {
        'polymorphic_on': type
    }

class IntegerParam(Param):
    __tablename__ = "integerparam"
    value = db.Column(db.Integer, nullable=False)    
    __mapper_args__={
        "polymorphic_identity": "int"
    }

class BoolParam(Param):
    ...

class DateParam(Param):
    ...

class SomeRelatedParam(Param):
    __tablename__ = "somerelatedparam"
    related_id = db.Column(db.Integer, db.ForeignKey(...))
    value = db.relationship(SomeRelatedModelClass)
    __mapper_args__ = {...}

我的目标是急切地加载(使用joinedload或subqueryload)一个带有相关ParamSet和所有类型参数的ExportJob。在

我该怎么做?在

我试过:

^{pr2}$

但是如何指定急切地加载所有不同的Param类型?在


Tags: id声明dbmodelparamargscolumninteger