Re: Relationships refresh possible BUG

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed Jun 17 2009 - 08:16:57 EDT

  • Next message: Malcolm Edgar: "Re: Cayenne Fetch Limit behaviour ?"

    Hmm... wonder if the PREFETCH LIMITATION warning is only applicable to
    the default disjoint prefetches in 3.0. I have a feeling this type of
    prefetching should work with joint prefetches since the day when we
    started using OUTER JOINs for them. Could you give it a try?

    Andrus

    On Jun 11, 2009, at 8:08 PM, lmarcha..mausa.com wrote:

    > Hello all !
    >
    > I have currently a big problem refreshing my relationships with
    > cayenne 3.0M6 (tested with M5 too).
    > I have a table JOB with some extended/dynamic properties and another
    > related JOB_AUX table (kinda key/value pair table). So there is a to-
    > many relationship between JOB->JOB_AUX with the flag "To Dep PK" set.
    >
    > In my JOB editor I display all the extended properties (JOB_AUX),
    > and I used to use the JOB.addPrefetch(related_JOB_AUX) to ensure
    > that the JOB and it's relationships are fresh each time I fetch a
    > job in the editor. I had a problem one day with :
    >
    > PREFETCH LIMITATION:
    > To-many relationships should not be prefetched if a query qualifier
    > can
    > potentially reduce a number of related objects, resulting in incorrect
    > relationship list.
    >
    >
    > So I removed the prefetch and tried another way : In my editor I
    > need fresh data so I used RefreshQuery(JOB) each time a job is
    > selected to be sure that the related JOB_AUX will be fresh, but it
    > does not work.
    >
    > The funny thing is that :
    >
    > - RefreshQuery(JOB) does not see when a value _change_ in the
    > JOB_AUX table, but works when a value is _added_ or _removed._
    > - I tried with RelationshipQuery(JOB, related_JOB_AUX, true) but it
    > only works when a value is _changed_ in the JOB_AUX table it does
    > not when a value is _added_ or _removed._
    >
    > So I can make my editor work when I use a combination of these two
    > queries on the JOB to have fresh data.
    > Is this a bug ? do you have a Cayenne test case with an embedded
    > database that I can use to reproduce this case ?
    >
    > Thanks.
    > Laurent Marchal.
    >



    This archive was generated by hypermail 2.0.0 : Wed Jun 17 2009 - 08:17:36 EDT