2015-10-06 8 views
8

ait hevesli yükleme: Yük arayüzü ile bunu yapmak sözdizimi neSQLAlchemy: Birden fazla ilişki bu yapıyı sorgulamak istiyorum

A -> B 
B -> C 
B -> D 

, dokümantasyon bu (http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalchemy.orm.joinedload) çok açık değildir. Tek gördüğüm nasıl yapılacağı: Ben B (B.d) ikinci ilişkiyi belirtmek için zincirinde geriye gitmek nasıl

query(A).options(joinedload(A.b).joinedload(B.c)) 

:

A -> B 
B -> C 
C -> D 

sorgusu göz önüne alındığında?

+0

Sorunuzu doğru anladıysam. Eğer varsa, bir 'backref' kullanabileceğine inanıyorum. Aksi halde, 'ilişki' beyanında bunu tanımlamak isteyebilirsiniz. – adarsh

cevap

8

Sadece yeni bir ilişki yolu ile başka .options(...) ekleyin:

q = (
    session 
    .query(A) 
    .options(joinedload(A.b).joinedload(B.c)) 
    .options(joinedload(A.b).joinedload(B.d)) 
) 
+0

birden çok seçeneği şu şekilde konumsal argümanlar olarak iletemezsiniz: '.options (joinload (...). Joinload (...), joinload (...). Joinload (...))'? – Bob

İlgili konular