Hello, I'm working with a class inheritance structure which can be illustrated by this example: class Entity(object):
def __init__(self, entity_type=EntityTypeEntity, id=None): self.entity_type = entity_type self.id = id class Person(Entity): def __init__(self, entity_class=None, entity_type=EntityTypePerson, id=None, name_first=None, name_last=None, name_middle=None, name_prefix=None, name_suffix=None): super(Person, self).__init__(entity_type, id) self.entity_class = entity_class self.name_first = name_first self.name_last = name_last self.name_middle = name_middle self.name_prefix = name_prefix self.name_suffix = name_suffix class SupporterPerson(Person): def __init__(self, entity_class=EntityClassSupporterPerson, entity_type=EntityTypePerson, id=None, name_first=None, name_last=None, name_middle=None, name_prefix=None, name_suffix=None, relationship=None): super(SupporterPerson, self).__init__(entity_class, entity_type, id, name_first, name_last, name_middle, name_prefix, name_suffix) self.relationship = relationship My current mappings look like this: # Mappers self.entity_table_mapper = mapper( Entity, self.entities_table, polymorphic_on=self.entities_table.c.entity_type, polymorphic_identity=EntityTypeEntity, with_polymorphic='*', properties={ 'entity_type': self.entities_table.c.entity_type, 'id': self.entities_table.c.id, } ) self.persons_table_mapper = mapper( Person, self.persons_table, polymorphic_on=self.persons_table.c.entity_class, polymorphic_identity=EntityTypePerson, with_polymorphic='*', inherits=Entity, ) self.supporter_persons_table_mapper = mapper( SupporterPerson, self.supporter_persons_table, polymorphic_identity=EntityClassSupporterPerson, with_polymorphic='*', inherits=Person, ) I am able to instantiate a SupporterPerson() and successfully store all attributes correctly in their respective tables. So the mapping seems to work well. However... In the broader context of my application, a query to load Causes() ( sketched out below ) will eagerload a list of that causes supporters. When supporters are eagerloaded, the supporter is reliably loaded to the level of Person() however the attributes specific to SupporterPerson() are not loaded. In other words, the attributes specific to the youngest child in my class inheritance, structure are NOT loaded by the eagerload. class Cause(object): def __init__(self, id=None supporters=None): self.id = id self.supporters = [] if supporters is None else None So my question is, Is there a problem with my mapping? Or is this depth of inheritance not supported by the eagerload? Or perhaps there is something else I'm missing altogether ( unrelated to the eagerload ) ? Any advice or assistance would be greatly appreciated. Sorry if I'm missing something that is already clearly stated in the documentation. Best, Ken -- 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 post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.