P.S.

Well I _am_ sort of at the slow side today.

I guess this might bring nasty problems with EOs *not* synchronized, right? The 
net effect would be essentially the same as if each session run in its own 
instance, or am I wrong?

Thanks again,
OC

On 11. 7. 2016, at 13:12, OC <o...@ocs.cz> wrote:

> I see.
> 
> Can you please nudge how would one do the „EOF stack per session“ (or per a 
> selected number of sessions, but not all of them) magic? I guess I should 
> know, but my old dumb brains does not seem to co-operate much at the moment :)
> 
> Thanks a lot,
> OC
> 
> On 11. 7. 2016, at 6:47, Chuck Hill <ch...@gevityinc.com> wrote:
> 
>> This is why you want an EOF stack per session.  This the only way to have 
>> very different configurations per session.   Without that, I don’t think 
>> that ERXEnterpriseObjectArrayCache is going to help you much.  You need to 
>> configure an isolated EOF stack per session to show that session just the 
>> data that is appropriate to it.
>> 
>> Chuck
>> 
>> From: OC <o...@ocs.cz>
>> Date: Sunday, July 10, 2016 at 5:23 AM
>> To: Chuck Hill <ch...@gevityinc.com>
>> Cc: WebObjects-Dev Mailing List <webobjects-dev@lists.apple.com>
>> Subject: Re: qualified to-many relationships?
>> 
>> Chuck,
>> 
>> On 9. 7. 2016, at 11:54, OC <o...@ocs.cz> wrote:
>> 
>> Meantime I have realised one thing: the "qualifiedRecords" are current-user 
>> (i.e., session) dependent in such a way that for a given session which needs 
>> to qualify them, there will *never* be need to fetch the other records. 
>> Completely all fetches, which originate in that session, should be filtered. 
>> The demand is “a specific user should never see some records; from his point 
>> of view, the application should look like they do not exist.“
>> Might perhaps EOF or Wonder allow some trick therefore not to implement 
>> "qualifiedRecords", but, instead, for all database operation which belong to 
>> a specific session, to _always_ filter _all_ fetches of "records" (or even 
>> better, _completely all_ fetches of the T_RECORD table, whichever way they 
>> did origin!) by a given qualifier?
>> 
>> Well, as you probably have seen at the first look, this was one of my 
>> (frequent) not-so-bright ideas. It seems e.g., the dbcontext delegate can do 
>> it all right and it works excellently: whichever thing gets fetched from 
>> given entity on behalf of a given user gets perfectly filtered.
>> 
>> The only limitation is that other sessions would have to have different (or 
>> none at all) qualifiers
>> 
>> You know the result: if another user wants the data later, they, of course, 
>> are not fetched in his behalf; instead, they come from shared caches, 
>> already (improperly) filtered for the original user, whose request did 
>> fetch. Oops.
>> 
>> I suppose, even if I managed to
>> 
>> clone the model into a new, user specific EOModelGroup
>> and add the restricting qualifier to the DBRecord entity in there?
>> 
>> it would lead to the same problem: presumably the entity restricting 
>> qualifier would be used fetch-time; and the next time another user wants the 
>> data, he would get cached ones, which means, for him, wrong list.
>> 
>> Thus I am afraid indeed
>> 
>> none of this is (reasonably) possible
>> 
>> and truly
>> 
>> I shall need to fall back to the originally considered way of:
>> To achieve this you need to:
>> 1.       Write the access method like yo have below, but cache the result 
>> for performance.
>> 2.       Write the mutator methods (if you need them) to work on the 
>> original EOF relationship
>> 3.       Modify the mutator methods of the original relationship to either 
>> invalidate or update this cache (update is faster but harder to write)
>> 4.       Intercept certain EOF operations/notifications so that the cache 
>> can be updated or invalidated when EOF changes the underlying snapshots
>> I can dig the details for (4) out for you if you want to pursue this.
>> and I would be then pretty grateful for that.
>> 
>> If you can spare a moment, let me please know.
>> 
>> Might perhaps ERXEnterpriseObjectArrayCache help here? From its 
>> documentation it sort of seems it might perhaps be listening to those 
>> notifications to keep up to date automagically, but I have never used the 
>> thing and am not sure by far I understand the documentation...
>> 
>> Thanks a big lot!
>> 
>> All the best,
>> OC
>> 
>> From: <webobjects-dev-bounces+chill=gevityinc....@lists.apple.com> on behalf 
>> of OC <o...@ocs.cz>
>> Date: Friday, July 8, 2016 at 1:11 AM
>> To: WebObjects-Dev Mailing List <webobjects-dev@lists.apple.com>
>> Subject: qualified to-many relationships?
>> Hi there,
>> is there a way to define and use a to-many relationship, derived from a 
>> modelled one, by limiting the results by a qualifier?
>> I have got an entity, say, "DBTable", whose to-many relationship "records" 
>> returns a set of eos of entity "DBRecord". That works all right.
>> Now, I need to implement a "qualifiedRecords" relationship, which would work 
>> this way:
>> ===
>> class DBTable ... {
>>  NSArray qualifiedRecords {
>>    EOQualifier qq=ERXSession.session().recordQualifier; // the qualifier 
>> depends on current user and other conditions of the current session
>>    return EOQualifier.filteredArrayWithQualifier(this.records(),qq);
>>  }
>> }
>> ===
>> With small objects, I would use precisely the code above. Alas, my DBTables 
>> contain _lots_ of DBRecords, and thus the above implementation would get 
>> terribly slow by fetching all of them and then re-filtering them each time 
>> the relationship is accessed.
>> What I need here is same behaviour functionality-wise, but at a lower level, 
>> sort of like EODatabaseDataSource's auxiliaryQualifier, but somehow bound to 
>> the particular relationship, so that
>> (a) it is not needed to fetch all records -- the "qualifiedRecords" 
>> relationship would, when fired, automatically fetch only the qualified ones
>> (b) records are fetched once and then cached, just like it is with normal 
>> relationships
>> (c) I can use things like
>> ERXEOControlUtilities.objectCountForToManyRelationship(sometable,"qualifiedRecords")
>> etc. seamlessly, and they work as expected.
>> Is there a way to do this at all? Perhaps I am just blind, but I cannot find 
>> any decent solution :/
>> Thanks and all the best,
>> OC
>> _______________________________________________
>> 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
>> This email sent to ch...@gevityinc.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/ocs%40ocs.cz
>> This email sent to o...@ocs.cz
>> 
>> 
> 
> 
> _______________________________________________
> 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/ocs%40ocs.cz
> 
> This email sent to o...@ocs.cz


 _______________________________________________
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