我试图在SqlAlchemy中建立一对一的关系,其中必须在select查询中明确地获取相关模型。
以下是主要模型的示例。其他模型中没有任何关系代码,如Gene和MiRNA。
class MicroRnaGeneTarget(Base):
"""description of class"""
__tablename__ = 'micro_rna_gene_target'
micro_rna_id_symbol = Column('micro_rna_id_symbol', String(20), ForeignKey('micro_rna.id_symbol'), primary_key=True, nullable=False)
gene_id_entrez = Column('gene_id_entrez', Integer, ForeignKey('gene.id_entrez'), primary_key=True, nullable=False)
gene = relationship('Gene', lazy='joined')
micro_rna = relationship('MicroRna', lazy='joined')
def __repr__(self):
return "<MicroRNAGeneTarget(micro_rna_id_symbol='%s', gene_id_entrez='%s')>" % \
(self.micro_rna_id_symbol, gene_id_entrez)
我定义了两个模型之间的关系,因为他们加入了#39;。然后,我希望得到主模型而不是两个模型。
示例:
在这里,我想要mirna_gene_targets值
mirna_gene_targets = session.query(MicroRnaGeneTarget).filter(MicroRnaGeneTarget.micro_rna_id_symbol == 'hsa-let-7a-5p').first()
在这里,必须得到相关的模型值:
mirna_gene_targets2 = session.query(MicroRnaGeneTarget).options(lazyload(MicroRnaGeneTarget.gene)).filter(MicroRnaGeneTarget.micro_rna_id_symbol == 'hsa-let-7a-5p').first()
有谁知道如何解决这个问题?
非常感谢。