On Jan 30, 2:37 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> On Jan 30, 2009, at 1:39 PM, Hans Lellelid wrote:
>
>
>
>
>
> > Hi,
>
> > I did a quick search but couldn't find the "right" way to do this in
> > SA.
>
> > For the sake of example, I have a many-to-many relationshp between
> > Book and Reader.  The 'books' property of reader is loaded using
> > lazy='dynamic'.  And, finally, Book is mapped with single-table
> > inheritance and has subclasses for various genres.  -- this is just an
> > example :)
>
> > This works:
> > reader = session.query(Reader).first()
> > mysterybooks = reader.books.filter
> > (Book.genre==MysteryBook.DESCRIMINATOR_KEY)
>
> > However, this doesn't feel like the *right* way.  I experimented with
> > various forms of of_type() but didn't get it to work.  I'm sure I'm
> > just not fully understanding how that is supposed to work.
>
> of_type() is currently only implemented for a RelationProperty and  
> takes effect for EXISTS subqueries generated by has()/any() and  
> query.join().    So for the dynamic loader's list of books, what  
> you're doing is the best option we have at the moment.   it seems like  
> of_type() existing on Query as a generative method would be the way to  
> go here...until someone says "query(A, B, C).of_type(A)".....

:) -- Ok, if what I'm doing is right, I'll leave it there.  It does
work fine afterall, but obviously is a little less resilient to me
changing my inheritance mapping strategy down the road.  (Not that I
plan to...)

Thanks!
Hans
--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to