• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Object not being saved after refaulting and applying changed
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Object not being saved after refaulting and applying changed


  • Subject: Re: Object not being saved after refaulting and applying changed
  • From: Miguel Arroz <email@hidden>
  • Date: Fri, 20 Jul 2007 21:43:08 +0100

Hi!

It's more complicated than that. I need to look at some values of objects, and change them accordingly to the previous values *and* values from other objects. I can't simply merge stuff, I need to: a) Get objects from DB, b) do weird calculations, c) write results in an atomic way. When the "atomic" part of it brakes, ie, when an OL exception is thrown, I need to go back to step a), and the results on c) will be different that what they were in the first iteration.

Anyway, it's solved! But could someone fix that bug in 5.4? (Maybe it is, I still didn't read the release notes!)

  Yours

Miguel Arroz

On 2007/07/20, at 21:16, Galen Rhodes wrote:

Years and years and years ago I could have sworn someone posted a method that replaced EOEditingContext.saveChanges() that would apply (merge) recent database changes to changed EOs if they failed optimistic locking?

I think this was around 2001 or so.

I think it was basically what Miguel is looking for in one easy to use method.

--
Galen Rhodes
email@hidden

"There is no worse tyranny than to force a man to pay for what he does not want merely because you think it would be good for him."

-- Robert Heinlein --



On Jul 19, 2007, at 7:19 PM, Chuck Hill wrote:


On Jul 19, 2007, at 4:17 PM, Miguel Arroz wrote:

Hi!

Pardon my ignorance, but is there a way to apply this globally? IE, change the behaviour of all the ECs to this?

You could add it to a sub-class of EC. I have _no_ idea what this would do to EOF internals, but I would not be at all optimistic for success.



I will actually used an optimized version of this to (try to) solve my problem, because I can reduce the number of fetches, but it would be nice to know that this would work fine everywhere.

This is just an extract from how I handle optimistic locking problems.


Chuck


PS: Pierre, it would be *really* great to have that bug fixed! ;)

4. Try this instead of refault:

/**
* Forces this object to be re-read from the database; the snapshot and all editing contexts
* holding this object are updated. Merging or overwriting of the changes is then handled by
* the editing context delegate. This method takes no action if the object is pending insertion.
*
* @param anObject the object to be evaluated
*/
public static void refreshObject(EOEnterpriseObject anObject)
{
/** require [valid_theObject_param] anObject != null;
[in_ec] anObject.editingContext() != null; **/


// We can't just call editingContext().refreshObject() or editingContext().refaultObject() the object here.
// That will result in fresh data only if the object is in a single editing context.
// This seems like the safest way to get fresh data and inform all of the other
// editing contexts that they need to update.
EOEditingContext ec = anObject.editingContext();
if ( ! ec.insertedObjects().containsObject(anObject))
{
EOQualifier thisObject = EOUtilities.qualifierForEnterpriseObject(ec, anObject);
EOFetchSpecification fetchSpec = new EOFetchSpecification(entityForSelf(anObject).name(), thisObject, NSArray.EmptyArray);
fetchSpec.setRefreshesRefetchedObjects(true);
anObject.editingContext ().objectsWithFetchSpecification(fetchSpec);
}
}



--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







Miguel Arroz http://www.terminalapp.net http://www.ipragma.com





--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40bunburyjamestown.org


This email sent to email@hidden


Miguel Arroz http://www.terminalapp.net http://www.ipragma.com



_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Object not being saved after refaulting and applying changed (From: Miguel Arroz <email@hidden>)
 >Re: Object not being saved after refaulting and applying changed (From: Chuck Hill <email@hidden>)
 >Re: Object not being saved after refaulting and applying changed (From: Miguel Arroz <email@hidden>)
 >Re: Object not being saved after refaulting and applying changed (From: Chuck Hill <email@hidden>)
 >Re: Object not being saved after refaulting and applying changed (From: Galen Rhodes <email@hidden>)

  • Prev by Date: Re: Object not being saved after refaulting and applying changed
  • Next by Date: Re: Object not being saved after refaulting and applying changed
  • Previous by thread: Re: Object not being saved after refaulting and applying changed
  • Next by thread: Re: Problem with deleting a related object (to-many relationship)
  • Index(es):
    • Date
    • Thread