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. 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
> 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 > > > > > > <poly_assoc_3.py> > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---