On Thu, Jul 3, 2008 at 6:01 PM, <[EMAIL PROTECTED]> wrote: > > On Thursday 03 July 2008 17:15:40 Michael Bayer wrote: >> the first set of operations on the Session place every new object, >> including two Address objects and two GenericAssoc objects, in the >> session. Then the session is cleared. Then, a series of loads >> load in all those same objects, including the same Address objects >> and GenericAssoc objects, except different instances of them local >> to that session (since the previous were cleared). Then, when u2 = >> User() is created and is associated with "a2" from the *first* >> session, the two original GenericAssoc objects (which were cleared) >> now become associated with that User object via the connection to >> Address, which fail to be added since there are already two >> GenericAssoc's from the second Session usage present.
Jeeez. I hate myself for thinking it was some complex thing related to the pattern used and not even looking further... > ahh yes i had this same a week ago but i forgot. > so is u2=session.merge(u2) a cure? > i used it on some similar (test) case a2 = sess.merge(a2) is a cure indeed. > >> On Jul 3, 2008, at 9:31 AM, Gaetan de Menten wrote: >> > Hi list, >> > >> > Could anybody tell me what's wrong with the following code? It's >> > only the code in the poly_assoc example directory (the generic >> > version) where I'm trying to set the polymorphic part of the >> > relationship. It gets me the traceback below and I don't really >> > understand why: >> > >> > Traceback (most recent call last): >> > File "poly_assoc_3.py", line 155, in <module> >> > sess.save(u2) >> > File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/util.py", >> > line 1550, in func_with_warning >> > return func(*args, **kwargs) >> > File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/orm/ >> > session.py", >> > line 1055, in save >> > self._cascade_save_or_update(state, entity_name) >> > File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/orm/ >> > session.py", >> > line 1111, in _cascade_save_or_update >> > self._save_or_update_impl(state) >> > File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/orm/ >> > session.py", >> > line 1251, in _save_or_update_impl >> > self._update_impl(state) >> > File "/home/ged/devel/sqlalchemy/trunk/lib/sqlalchemy/orm/ >> > session.py", >> > line 1241, in _update_impl >> > "session." % (mapperutil.state_str(state), state.key)) >> > sqlalchemy.exc.InvalidRequestError: Could not update instance >> > '[EMAIL PROTECTED]', identity key (<class >> > '__main__.GenericAssoc'>, (1,), None); a different instance with >> > the same identity key already exists in this session. -- Gaƫtan de Menten http://openhex.org --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---