> when was that raised...when defining mappers ? this is all very hard
> to follow without an attachment of the full code.
Yes: things diverged a bit from the starting example.
Below a self contained test case. It fails fetching classes neither
root nor leaf in an inheritance tree.
Am i doing something wrong in setting up the mappers?
-- Daniele
----
from sqlalchemy import *
metadata = BoundMetaData('sqlite://')
# Database metadata
employees = Table('employees', metadata,
Column('person_id', Integer, primary_key=True),
Column('name', String(50)),
Column('type', String(30)))
managers = Table('managers', metadata,
Column('person_id', Integer,
ForeignKey('employees.person_id'),
primary_key=True),
Column('manager_data', String(50)))
boss = Table('boss', metadata,
Column('person_id', Integer,
ForeignKey('managers.person_id'),
primary_key=True),
Column('powers', String(50)))
metadata.create_all()
# Python classes
class Employee(object): pass
class Manager(Employee): pass
class Boss(Manager): pass
# Mapping objects
person_join = polymorphic_union({
'person':employees.select(employees.c.type=='person'),
'manager':employees.join(managers),
'boss':employees.join(managers).join(boss),
}, None, 'pjoin')
person_mapper = mapper(Employee, employees,
select_table=person_join,
polymorphic_on=person_join.c.type,
polymorphic_identity='person')
manager_mapper = mapper(Manager, managers,
inherits=person_mapper,
polymorphic_identity='manager')
mapper(Boss, boss,
inherits=manager_mapper,
polymorphic_identity='boss')
# Testing serialization
ses = create_session()
for emp in [ Employee(), Manager(), Boss() ]:
ses.save(emp)
ses.flush()
ses.clear()
#print ses.query(Employee).select() # this works
print ses.query(Manager).select() # this doesn't
#print ses.query(Boss).select() # this works too
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---