I have come across a rather strange problem.  Changes to an EO are not
saving properly.  In memory it shows that I have changed the EO but when
I look at the editingContext, it doesn't show it in _unprocessedChanges.
It also doesn't save the change that I am making.  I finally realized
that if I call ec.committedSnapshotForObject(ecr);  BEFORE I make any
changes to the object, it works fine.  
 
Here's an example of the code:
 
EOEditingContext ec = new EOEditingContext();
//   If I uncomment this, it saves properly.
//   ec.committedSnapshotForObject(ecr);
EmailCommunicationRecipient ecr =
(EmailCommunicationRecipient)EOUtilities.faultWithPrimaryKeyValue(ec,
"EmailCommunicationRecipient", new Integer(11312312));
ecr.setDateSent(new NSTimestamp());
ec.saveChanges();
 
Strangely, if I do the following, the dateSent won't save but the status
will:
 
EOEditingContext ec = new EOEditingContext();
EmailCommunicationRecipient ecr =
(EmailCommunicationRecipient)EOUtilities.faultWithPrimaryKeyValue(ec,
"EmailCommunicationRecipient", new Integer(11312312));
ecr.setDateSent(new NSTimestamp());
ec.committedSnapshotForObject(ecr);
addObjectToBothSidesOfRelationshipWithKey(aValue, "toCurrentStatus");
ec.saveChanges();
 
The only thing special with EMailCommunicationRecipient is that it is a
single table inhertance in the model.
 
EMailCommunicationRecipient extends CommunicationRecipient which extends
AbstractCommunicationRecipient.
 
Until I figure out what's going on, I was going to just add the
following (because I just don't know how many places this is happening).
Will this add much overhead?:
 
public void awakeFromFetch(EOEditingContext ec){
    super.awakeFromFetch(ec);
    ec.committedSnapshotForObject(ecr);
}
 
Thanks,
David
 _______________________________________________
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