On May 24, 2012, at 10:02 AM, pr64 wrote:

> Hi,
> 
> For some reason, I need to access my sqlite database through an API which 
> encapsulates the sqlalchemy stuff.
> In my api methods, the typical sequence is:
> get a session from the session maker
> query/commit the db using this session
> return the queried/commited object and close the session
> From the caller side, the returned object may have expired but i don't care 
> (I configure my session maker with expire_on_commit=False)
> 
> This works fine, ie the object is detached from the db but immediate 
> attributes are available from reading without any call to a hidden sqlalchemy 
> refresh.
> 
> If I want to access linked tables, I just implement it with joinedloads 
> within my api and again the caller can read related attributes.
> 
> 
> The problem comes with inherited tables. I would like to be able to tell 
> sqlalchemy to automatically load the child instead of loading the base class 
> (and after issueing a refresh). Here's a sample code: 
> http://pastebin.com/SyKmh9Ac
> 
> Line 131 works fine since the requested object is a the base class object
> 
> Line 133 does not work since the requested object is a child class object
> 
> How can I configure sqa to be able to get the whole child without having 
> later refreshes ?
> 
> 


use the with_polymorphic() method of Query described at 
http://docs.sqlalchemy.org/en/rel_0_7/orm/inheritance.html#basic-control-of-which-tables-are-queried
 .   0.8 will have a more capable and flexible version of this function.

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

Reply via email to