From: Mike Bayer Date: Wed, 25 Aug 2010 15:00:35 +0000 (-0400) Subject: add a note X-Git-Tag: rel_0_6_4~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e104dfff86f03b440e4fe1f48022d2d4ac18ebce;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git add a note --- diff --git a/examples/beaker_caching/caching_query.py b/examples/beaker_caching/caching_query.py index 0b2238282d..a94eea6ac2 100644 --- a/examples/beaker_caching/caching_query.py +++ b/examples/beaker_caching/caching_query.py @@ -62,6 +62,14 @@ class CachingQuery(Query): """override __iter__ to pull results from Beaker if particular attributes have been configured. + Note that this approach does *not* detach the loaded objects from + the current session. If the cache backend is an in-process cache + (like "memory") and lives beyond the scope of the current session's + transaction, those objects may be expired. The method here can be + modified to first expunge() each loaded item from the current + session before returning the list of items, so that the items + in the cache are not the same ones in the current Session. + """ if hasattr(self, '_cache_parameters'): return self.get_value(createfunc=lambda: list(Query.__iter__(self)))