On Fri, Jan 9, 2015 at 1:19 PM, Michael Bayer <mike...@zzzcomputing.com> wrote:
>
>
> Jon Nelson <jnel...@jamponi.net> wrote:
>
>> I'm having a bit of trouble.
>> Let's say I have N primary key IDs for a set of objects.
>> I want to load all of those objects into the session, but I'd like that to 
>> happen all in one query.
>>
>> dbsess.query(object_type).filter(object_type.primary_key.in_(some_list_of_ids)).all()
>>
>> # then I made (one or more) new instances using the same primary key as above
>>
>> new_instance = object_type(....)  # NOTE: includes the primary key
>>
>> dbsess.merge( new_instance ) # this issues another query to load using the 
>> primary key.
>>
>>
>> Instead of issuing N queries, I'd like to find a way to load the session 
>> with all of the objects I'm (eventually) going to call merge on, and have 
>> that happen in just one query if possible.
>>
>> I tried using merge_result but I'm pretty sure I'm not using it properly.
>>
>
> ok well the first query gives you those objects, in that session, in one 
> query.  i guess you’re trying to move them to a different session for the 
> purposes of caching.

Partially. Throughout, there is only one session involved.

> so you could use either merge() or merge_result() but to avoid any SQL set 
> load=False.

When I tried with load=False, I got an error. I am using 0.9.8.

> You can look at the dogpile caching example for an example.

I did, and I'm not quite sure what's going on there.

-- 
Jon
Software Blacksmith

-- 
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