Re: [Modeling-users] Declaring and using a nested EditingContext
Status: Abandoned
Brought to you by:
sbigaret
From: <pms...@so...> - 2006-07-09 12:32:16
|
Please ignore the previous reply, it was only partly completed; I had a little keyboard shortcut accident :-) Hi Sébastien, The test you mention run fine here, but still I get no changes in the child in the following example, maybe I am doing something weird here. Thanks a lot for looking into this :-) Cheers, Paul EXAMPLE ======= pymodel_parentchild.py ---------------------------------------------------------------------------- from Modeling.PyModel import * Association.defaults['delete'] = ['nullify', 'nullify'] Entity.defaults['properties'] = [] model = Model('parentchild', version='0.1') model.associations = [] model.entities = [ Entity('Person', properties = [ APrimaryKey('uid', isClassProperty=0, isRequired=1, doc='PK'), AString('first_name', width=60), AString('last_name', width=60), ], ), ] ---------------------------------------------------------------------------- Person.py ---------------------------------------------------------------------------- from Modeling import dynamic __metaclass__ = dynamic.CustomObjectMeta class Person: entityName = 'Person' mdl_define_properties = 1 ---------------------------------------------------------------------------- test_parentchild.py ---------------------------------------------------------------------------- from parentchild.Person import Person from Modeling.EditingContext import EditingContext as EC parent_ec = EC() child_ec = EC(parent_ec) def populate(ec): ec.insert(Person(first_name='Anna', last_name='Anderson')) def result(): global parent_ec, child_ec print "PARENT:", for p in parent_ec.fetch('Person'): print p.first_name, p.last_name, print print "CHILD :", for p in child_ec.fetch('Person'): print p.first_name, p.last_name, print print print "POPULATING AND SAVING CHANGES" populate(parent_ec) #parent_ec.processRecentChanges() parent_ec.saveChanges() result() print "CHANGING 'Anna' --> 'anna' in parent AND SAVING CHANGES" anna = parent_ec.fetch('Person', 'first_name=="Anna"')[0] anna.first_name = 'anna' #parent_ec.processRecentChanges() parent_ec.saveChanges() result() ---------------------------------------------------------------------------- OUTPUT FROM TEST ------------------------------------------------------------ POPULATING AND SAVING CHANGES PARENT: Anna Anderson CHILD : Anna Anderson CHANGING 'Anna' --> 'anna' in parent AND SAVING CHANGES PARENT: anna Anderson CHILD : Anna Anderson ------------------------------------------------------------ Sébastien Bigaret wrote: > Hi Paul & all, > > pms...@so... wrote: > [...] >> However, I can't quite get what is meant by the sentence: >> >> - the states of the objects in the result set will reflect any changes >> made to them in the parent object store, even the uncommitted ones. >> >> From testing, when I change an object held by the parent EC, and then >> do a fetch on that object in the child, the change is not shown in the >> object held by the child EC. > > Your understanding is correct, and the changes should appear in the child context. If they are not, it is definitely a bug. > > Could you please send me your example, where the bug appear? This is something I did not observe from now on, and I'll be glad to examine and fix it. > > Cheers, > > -- Sébastien. > > > PS: Oh, BTW, this is tested in tests/test_EditingContext_ParentChildpy, method test_03_fetchedAndModifiedObjectsInParent() > > pms...@so... a écrit : >> Hi all, >> >> I am reading chapter "5.2 Declaring and using a nested EditingContext" >> in the user guide on the web: >> >> http://modeling.sourceforge.net/UserGuide/nested-ec-usage.html >> >> I understand and can verify by testing (I am using modeling release 0.9) >> that: >> >> 1. Inserting an object in the parent EC will show up in a fetch in the >> child EC. >> >> 2. Deleting an object in the parent EC deletes it from the result set in >> the child EC. >> >> However, I can't quite get what is meant by the sentence: >> >> - the states of the objects in the result set will reflect any changes >> made to them in the parent object store, even the uncommitted ones. >> >> From testing, when I change an object held by the parent EC, and then >> do a fetch on that object in the child, the change is not shown in the >> object held by the child EC. >> >> Can anyone get me on the right track here? >> >> And last, but not least, thanks for all the work on this magnificent >> framework :-) >> >> Cheers >> Paul >> >> Using Tomcat but need to do more? Need to support web services, security? >> Get stuff done quickly with pre-integrated technology to make your job easier >> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> Modeling-users mailing list >> Mod...@li... >> https://lists.sourceforge.net/lists/listinfo/modeling-users >> >> > |