Thanks!  That appears to have done it.

Chris Guin

At 05:28 PM 3/27/2008, you wrote:


>On Mar 27, 2008, at 3:54 PM, Chris Guin wrote:
>
> >
> > Does anyone know where I could find a working example of multiple
> > levels of inheritance using joined table inheritance?
> >
> > Right now I have the following class hierarchy - an AspectDetection
> > and an RFDetection are subclasses of Detection, which in turn is a
> > subclass of Event.  Each of the classes has its own DB table, and an
> > object can be simply an Event or a Detection.  I've tried mapping
> > these classes together using the following code:
> >
> > detection_join =
> > detection.outerjoin(aspect_detection).outerjoin(rf_detection)
> > event_join = detection_join.outerjoin(event)
>
>if the ultimate base class is Event, then the "event" table's columns
>must be present in every result set.  By outerjoining (where outerjoin
>is a LEFT OUTER JOIN) detection to event, you dont get Event objects
>that are not Detection objects.  So event join should be:
>
>         event_join=event.outerjoin(detection_join)
>
>Similarly, mapping select_table directly to detection_join for
>detection_mapper does not include any columns from the Event table, so
>those loads would be failing pretty badly.   So for that mapper,
>assuming you want all subclasses in one big query, youd want to set
>select_table to:
>
>
>event
>.outerjoin
>(detection).outerjoin(aspect_detection).outerjoin(rf_detection)
>
>the good news is, 0.4.5 will deprecate select_table and you'll just be
>able to say "with_polymorphic='*'" on all your mappers where you want
>a join of all subtables constructed by default - it will do all this
>work for you.
>
>
>


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to