> On Oct 21, 2014, at 6:07 PM, Jonathan Vanasco <jvana...@gmail.com> wrote:
> 
> I've been staring at this for a while, and can't figure out a way to make the 
> mapper happy:
> 
> i have 3 Classes (tables):
> 
>     * List (list)
>     * ListItem (list_item)
>     * ItemType1 (item_type_1)
>     * ItemType2 (item_type_2)
>     * ItemType3 (item_type_3)
> 
> until now i've been using a joinedload
> 
>    query = s.query(List)\
>                       .options(
>                               joinedload('list_item'),
>                               joinedload('list_item.item_type_1'),
>                               joinedload('list_item.item_type_2'),
>                               joinedload('list_item.item_type_3'),
>                       )
> 
> The performance is starting to become less than optimal, so I wanted to try 
> creating a subquery for 'list_items', which has the `item_type_1`/2/3 
> connected to it as a joinedload
> 
> the closest I can get is this:
> 
>    query = s.query(List)\
>                       .options(
>                               subqueryload('list_item')\
>                                       .joinedload('item_type_1')
>                       )
> 
> at that point, the unbound subquery can only join things from `item_type_1`.  
> i can't figure out how to join other relationships of `list_item`
> 
> is it possible to joinedload mutliple trees/paths onto a subqueryload ?

in the old way, you’d say:

subqueryload(‘list_item’),
joinedload('list_item.item_type_1'),
joinedload('list_item.item_type_2'),
joinedload('list_item.item_type_3'),

that will still work.

new way you can also say:

subqueryload('list_item').joinedload('item_type_1'),
defaultload('list_item').joinedload(item_type_2'),
defaultload('list_item').joinedload('item_type_3'),

or variants thereof.





> 
> -- 
> 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 
> <mailto:sqlalchemy+unsubscr...@googlegroups.com>.
> To post to this group, send email to sqlalchemy@googlegroups.com 
> <mailto:sqlalchemy@googlegroups.com>.
> Visit this group at http://groups.google.com/group/sqlalchemy 
> <http://groups.google.com/group/sqlalchemy>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to