But those not already fetched aren't a problem anyway?

Cheers, Anjo



Am 11.02.2010 um 15:29 schrieb Mike Schrag:

> that would only refresh the objects that were fetched into that EC, though, 
> right?  i'm assuming he's doing a bulk operation on objects that were not 
> necessarily fetched.
> 
> ms
> 
> On Feb 11, 2010, at 9:17 AM, Kieran Kelleher wrote:
> 
>> Really, IIRC, the code:
>> 
>> ec.setFetchTimestamp( System.currentTimeMillis() );
>> ec.refreshAllObjects();
>> 
>> Try it. If it works, great. If not, let us know ;-)
>> 
>> Kieran
>> 
>> On Feb 11, 2010, at 9:05 AM, Mike Schrag wrote:
>> 
>>> invalidateAllObjects can break other EC's that are currently editing 
>>> objects because you throw away the backing snapshots from underneath them 
>>> ...
>>> 
>>> ms
>>> 
>>> On Feb 11, 2010, at 8:45 AM, Jean-Francois Veillette wrote:
>>> 
>>>> I'm surprised no one mentionned ec.invalidateAllObjects() coupled with 
>>>> refetching arrays you might have in memory (displaygroup and such for 
>>>> example), as far as I understand, it's the only solution that will take 
>>>> care of relationship and get rid of deleted objects (faults will still be 
>>>> in memory but at least refetching relationship and arrays will avoid 
>>>> pointing to them).
>>>> 
>>>> - jfv
>>>> 
>>>> Le 10-02-08 à 14:20, Mike Schrag a écrit :
>>>> 
>>>>> yeah, this is why i'm suspicious that we'll see a generalized Wonder 
>>>>> implementation of this .... definitely some tricks we could do, like what 
>>>>> you're saying -- just changing attributes that don't participate in 
>>>>> relationships, inverse relationships, or restricting qualifiers could be 
>>>>> a relatively easy update. changing anything that participates in a 
>>>>> relationship would be sort of a pain -- you have to do that pre-fetch 
>>>>> thing first and then you'd have to fake notifications afterwards. for 
>>>>> delete, it's even nastier.
>>>>> 
>>>>> i think you take advantage of the knowledge you have of your special case 
>>>>> and custom write this. it's topics like these that make me sometimes 
>>>>> think the everything-is-cached approach is overkill. i'd love to see a 
>>>>> variant of EOF that lets you write like a stateless framework in cases 
>>>>> where you don't want all the snapshotting stuff.
>>>>> 
>>>>> ms
>>>>> 
>>>>> On Feb 8, 2010, at 2:13 PM, Anjo Krank wrote:
>>>>> 
>>>>>> Mostly, it depends on what you are doing. Changing, say, status=done is 
>>>>>> different from owner=<people pk:1>, because the one only changes 
>>>>>> internal state, the other touches relationships.
>>>>>> 
>>>>>> Then again, all your *other* ECs in all *other* instances won't get 
>>>>>> notified anyway (unless you use the ERCNF). So your code needs to be 
>>>>>> able to handle that problem anyway.
>>>>>> 
>>>>>> Cheers, Anjo
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Am 08.02.2010 um 20:02 schrieb Mike Schrag:
>>>>>> 
>>>>>>>> Mike's precautionary measure is ticking at the top of my mind... so 
>>>>>>>> may be for the time being I will just call ec.refreshAllObjects() just 
>>>>>>>> to be integral, consistent, simple and more importantly let not annoy 
>>>>>>>> EOF by mistake!!!
>>>>>>> my precautionary tale is about using the methods you're using at all 
>>>>>>> (i.e. the updateRowsDescribedByQualifier) ... you're sneaking behind 
>>>>>>> EOF and basically doing direct DB operations. you're then trying to 
>>>>>>> come back and expect an easy way for EOF's caches to be in-sync with 
>>>>>>> your changes. the general case here is that you can't do it without 
>>>>>>> tossing all your snapshots, because you have no idea if the snapshots 
>>>>>>> in your cache are actually in-sync with the current state of the 
>>>>>>> database when you executed your update. there's a reason EOF does what 
>>>>>>> it does when you perform all of these operations, and it's because it 
>>>>>>> actually needs to.
>>>>>>> 
>>>>>>> probably the closest-to-right way to do this is to prefetch the rows 
>>>>>>> that would be updated or deleted, perform the operations, then use the 
>>>>>>> GIDs to ... i guess manually do everything that EOF would have done. 
>>>>>>> you're going to lose all the inverse relationship updating, and you're 
>>>>>>> going to lose delete rules, etc. also, by fetching into the EC 
>>>>>>> beforehand, you're basically taking the performance hit that you were 
>>>>>>> probably trying to avoid in the first place by using those API's.
>>>>>>> 
>>>>>>> so i doubt there's a simple generalized API that will go into Wonder 
>>>>>>> for this -- i'm not people would be happy with the performance profile 
>>>>>>> of it.
>>>>>>> 
>>>>>>> ms
>>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/webobjects-dev/kieran_lists%40mac.com
>>> 
>>> This email sent to kieran_li...@mac.com
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40mdimension.com
>> 
>> This email sent to msch...@mdimension.com
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/anjo%40krank.net
> 
> This email sent to a...@krank.net

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

This email sent to arch...@mail-archive.com

Reply via email to