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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sqlalchemy/70b48614-d1c0-42f4-8792-ed96f181915dn%40googlegroups.com.