Already requested the additional code, but what I mean is, let's
suppose you had all of the following code right in a row.
EOEditingContext ec = ERXEC.newEditingContext();
EOEditingContext otherEC = ERXEC.newEditingContext();
ParentEO parent = fetchMyEO(ec);
RelatedEO child = fetchMyOtherEO(otherEC);
If you wish to then relate parent to child, you would need to do
something like this:
RelatedEO localInstanceChild = EOUtilities.localInstanceOfObject(ec,
child);
parent.addObjectToBothSidesOfRelationshipWithKey(localInstanceChild,
"relationshipName");
ec.saveChanges();
You cannot relate EOs that are in separate editing contexts, so you
need to use localInstanceOfObject() to get a copy of some EO in the
editing context where you want to relate it with another EO. The
method taking the array argument will cause the same problem if those
EOs are in a different editing context from what you are trying to
save. But I think we need a more complete code listing to help.
Clark
On Oct 14, 2008, at 2:34 PM, WebObjects wrote:
On Oct 14, 2008, at 4:13 PM, Clark Mueller wrote:
You need to get a local copy of the object in the editing context
where you are trying to make the relationship. Have a look at
EOUtilities.localInstanceOfObject(ec, object).
So even if I sent the EO from one component to another I should get
a local copy of it?
I have
EOEditingContext editingContext = ERXEC.newEditingContext();
I checked the EOUtilities.localInstanceOfObject(editingContext, emp);
I used also the ERXUtilities.localInstanceOfObject(editingContext,
emp);
and then tried again
emp.addObjectsToBothSidesOfRelationshipWithKey(selectedItems(),
Employee.TURNS_KEY);
and still Im getting the same error, what Im doing wrong?
Gus
Clark
On Oct 14, 2008, at 2:09 PM, WebObjects wrote:
Hello, Im trying to use this method :
addObjectsToBothSidesOfRelationshipWithKey(NSArray obj1, String
arg1)
or something like that.
What I have is my Employee and the turns that tis particular
Employee selected. I dunno if I should use the method above or the
other one with the same name, but with other arguments,
(EORleationShipManipulation eo, String arg1).
Anyway, I tried both but I get this error
Error: java.lang.RuntimeException: You crossed editing context
boundaries attempting to set the 'turns' relationship of (in EC
[EMAIL PROTECTED]) to (in EC
[EMAIL PROTECTED]).
Reason: You crossed editing context boundaries attempting to set
the 'turns' relationship of <controlHorarios.app.eo.Employee
pk:"1"> (in EC [EMAIL PROTECTED]) to
<controlHorarios.app.eo.Turn pk:"1"> (in EC
[EMAIL PROTECTED]).
I guess Im trying to add to emp the turns which are in different
EC, no? what can I do?
The emp I fetch it using a custom EC ERXC.newEditingContext, and
this emp, I sent it to the other component where I can select the
desired turns. (if this info helps)
regards
Gus
_______________________________________________
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/cpmueller%40mac.com
This email sent to [EMAIL PROTECTED]
_______________________________________________
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]