On 2010-02-17, at 6:17 AM, David Avendasora wrote:

> 
> On Feb 16, 2010, at 5:31 PM, David LeBer wrote:
> 
>> It definitely doesn't work trying to pull an EO in a child ec into it's 
>> parent's. i.e:
>> 
>>      EOEditingContext rootEc = ERXEC.newEditingContext();
>>      EOEditingContext childEc = ERXEC.newEditingContext(rootEc);
>>      Movie m = Movie.createMovie(rootEc, "Test", null);
>>      Studio s = Studio.createStudio(childEc, new BigDecimal(100.00), "Test");
>>      Studio localS = s.localInstanceIn(m.editingContext());
>> 
>> BOOM: "You attempted to localInstance 
>> <org.wocommunity.movies.model.server.Studio pk:"null">, which has not yet 
>> committed."
>> 
>> I thought I'd gotten a similar message when I tried the other way around, 
>> but I probably got distracted and... OOH! SHINY!... 
> 
> As helpful as Anjo's comment was, I'm going to try to add to it (crazy, I 
> know).
> 
> In this example, why not just call childEc.saveChanges() after creating the 
> Studio? That won't actually save it to the DB/ObjectStore, just to the 
> rootEc. Then you can easily just do m.setStudio(s), 


Yeah, I know.

I was just being verbose. This code snippet was just demonstrating that 
although you can call local instance on an uncommitted EO in a parent EC into a 
child EC, you cannot do the opposite. Mostly for posterity: i.e: Do not attempt 
to do this.

        // This will work
        EOEditingContext rootEc = ERXEC.newEditingContext();
        EOEditingContext childEc = ERXEC.newEditingContext(rootEc);
        Movie m = Movie.createMovie(rootEc, "Test", null);
        Studio s = Studio.createStudio(childEc, new BigDecimal(100.00), "Test");
        Movie localM = m.localInstanceIn(s.editingContext());

        // This will not
        EOEditingContext rootEc = ERXEC.newEditingContext();
        EOEditingContext childEc = ERXEC.newEditingContext(rootEc);
        Movie m = Movie.createMovie(rootEc, "Test", null);
        Studio s = Studio.createStudio(childEc, new BigDecimal(100.00), "Test");
        Studio localS = s.localInstanceIn(m.editingContext());

> and I don't think you even need to do the localInstance, do you? (It's been a 
> while since I did nested ECs)

Yeah you do.

;david

--
David LeBer
Codeferous Software
'co-def-er-ous' adj. Literally 'code-bearing'
site:   http://codeferous.com
blog:   http://davidleber.net
profile:        http://www.linkedin.com/in/davidleber
twitter:        http://twitter.com/rebeld
--
Toronto Area Cocoa / WebObjects developers group:
http://tacow.org




 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to