On 28.02.2006., at 20:10, Michael Bayer wrote:

Ah nice.
When I select objects from Person.select() I get the same instance. Is possible to obtain this behaviour using custom object creation?


show me more specifically what you mean.

from the previous attachments (augmented with prints):

print "---------------"
print "Using pm mapper"
print "---------------"

print pm.select()

for o in pm.select():
    o.doSomething()

print pm.select()

# commit necessary to see changes because modifications are not tracked with the "pm" mapper
print "committing"
objectstore.commit()

print pm.select()

print "-------------------"
print "Using Person.mapper"
print "-------------------"

# Works without commit because the mapper returns the same instances
for o in Person.select():
    o.doSomething()
print Person.select()

**************
outputs:
**************

[]
---------------
Using pm mapper
---------------
[<Organization 18388048: Label Bleu, David Krakauer>, <Person 18389968: Smith, John>, <Base: 18362224: base>]
organization adding x to contact
person adding y to address
base doing nothing
[<Organization 18362192: Label Bleu, David Krakauer>, <Person 18390608: Smith, John>, <Base: 18362224: base>]
committing
[<Organization 18389392: Label Bleu, David Krakauerx>, <Person 18389008: Smith, Johny>, <Base: 18362224: base>]
-------------------
Using Person.mapper
-------------------
person adding y to address
[<Person 18389008: Smith, Johnyy>]

-----------

in the first example every select from the pm mapper yeilds different objects (different python id()).
In this case the modifications are not visible until the commit.

in the second example the modification of the objects are directly visible in the same thread because Person.select() returns the same objects.

I was wondering if it was possible to have the same behaviour using MapperExtension create_instance.

--
marko


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to