Trying to configure a set of relationships to all be joined loaded and the 
particular relationship structure doesn’t seem to want to join. I have a 
one-to-many relationship where the many is the child in joined table 
inheritance. The foreign key to my source table is on the polymorphic child 
table. But, however I configure the relationship it does a subquery instead 
of a joined load on the parent class.

Built a test application as a demonstration. What I want is to have the 
script below function the same way but, the query at the end outputs a 
joinedload for PolyParent instead of a subquery. 

from sqlalchemy import Column, ForeignKey, Integer, Text, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker

Base = declarative_base()

class PolyParent(Base):
    __tablename__ = "poly_parent"
    id = Column(Integer, primary_key=True)
    type = Column(Text)
    __mapper_args__ = {"polymorphic_identity": "poly_parent", 
"polymorphic_on": type}

class PolyChild(PolyParent):
    __tablename__ = "poly_child"
    id = Column(Integer, ForeignKey("poly_parent.id"), primary_key=True)
    parent_id = Column(Integer, ForeignKey("source.id"))
    __mapper_args__ = {"polymorphic_identity": "poly_child"}

class Source(Base):
    __tablename__ = "source"
    id = Column(Integer, primary_key=True)
    children = relationship(PolyChild)

engine = create_engine("sqlite://")
session = sessionmaker(bind=engine)()
Base.metadata.create_all(bind=engine)

print(session.query(Source).join(Source.children))

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/70b48614-d1c0-42f4-8792-ed96f181915dn%40googlegroups.com.

Reply via email to