Hi André and Chuck,

I asked my wife about invalidating the relationship cache.

She looked at me and said:

“Love is grand, divorce is 100 grand”

I would:

1) create a fetch specification

2) set “refreshesRefetchedObjects()” to true.

3) set up a prefetch path that traverses to the second objects.

Then use the editing context to fetch.

EOQualifier identityQualifier = {set this up yourself}
EOFetchSpecification fetchSpec = new EOFetchSpecification(YourEO.ENTITY_NAME, 
identityQualifier, null /*sortOrderings*/);
fetchSpec.setRefreshesRefetchedObjects(true);
fetchSpec.setPrefetchingRelationshipKeyPaths(new NSArray<String>(
                YourEO.RELATIONSHIP_NAME.dot(OtherEO.RELATIONSHIP_NAME).key()
        )
);
editingContext.objectsWithFetchSpecification(fetchSpec);


NOTE: Your identity qualifier might be like so:

EOEntity entity = EOUtilities.entityForObject(yourEO.editingContext(), yourEO);
EOKeyGlobalID globalID = (EOKeyGlobalID) 
eo.editingContext().globalIDForObject(eo);
NSDictionary<String, Object> primaryKey = 
entity.primaryKeyForGlobalID(globalID);
EOQualifier identityQualifier = entity.qualifierForPrimaryKey(primaryKey);

profit - save yourself 100 grand. 
AARON ROSENZWEIG / Chat 'n Bike <http://www.chatnbike.com/>
e:  aa...@chatnbike.com <mailto:aa...@chatnbike.com>  t:  (301) 956-2319        
        
        

> On Mar 5, 2018, at 2:24 PM, Chuck Hill <ch...@gevityinc.com> wrote:
> 
> Hi André,
> 
> Invalidating the GlobalIds won’t work.  That will just refresh the objects 
> that you have a list of already.  From your description, I think that you 
> want to refresh what is in list (get an updated list with inserted and 
> deleted rows that match the databse).  This should work
> ERXEOControlUtilities. clearSnapshotForRelationshipNamed(eo, " extWsProjects 
> ");
> 
> Following that you many need to refault the objects in the relationship.
> 
> 
> 
> On 2018-03-05, 8:31 AM, "Webobjects-dev on behalf of André Rothe" 
> <webobjects-dev-bounces+chill=gevityinc....@lists.apple.com 
> <mailto:webobjects-dev-bounces+chill=gevityinc....@lists.apple.com> on behalf 
> of andre.ro...@zks.uni-leipzig.de <mailto:andre.ro...@zks.uni-leipzig.de>> 
> wrote:
> 
>    Hi,
> 
>    I have an EO with a relationship to a second EO. The database in the
>    background will be changed by another application, so it will be
>    necessary to refetch the associated EOs of the relationship on every
>    access.
> 
>    How I can invalidate the list of the associated EOs?
> 
>    This is the generated method (EOGenerator):
> 
>    public NSArray<ExtWsProject> extWsProjects() {
>     // TODO: invalidate this array
>     return (NSArray<ExtWsProject>)storedValueForKey("extWsProjects");
>    }
> 
>    On the page
>    
> https://en.wikibooks.org/wiki/WebObjects/EOF/Using_EOF/Caching_and_Freshness
> 
>    I read something from Jesse Barnum, should I get all the ExtWsProject
>    objects and their GIDs to call ec.invalidateObjectsWithGlobalIDs(ids) to
>    make faults?
> 
>    But what about deleted rows in the database, the other application can
>    also delete rows, so the faults should not be necessary?
> 
>    Thanks a lot
>    Andre
> 
>     _______________________________________________
>    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:
>    
> https://lists.apple.com/mailman/options/webobjects-dev/chill%40gevityinc.com 
> <https://lists.apple.com/mailman/options/webobjects-dev/chill%40gevityinc.com>
> 
>    This email sent to ch...@gevityinc.com <mailto:ch...@gevityinc.com>
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com 
> <mailto:Webobjects-dev@lists.apple.com>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com 
> <https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com>
> 
> This email sent to aa...@chatnbike.com <mailto:aa...@chatnbike.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:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

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

Reply via email to