cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Boyle <abo...@valsphere.com>
Subject Re: Object relationship freshness
Date Wed, 20 Apr 2016 07:42:51 GMT
I can confirm... prefetching is the way to go. https://cayenne.apache.org/docs/4.0/cayenne-guide/performance-tuning.html#prefetching

I was having a similar issue where my most recently committed records were not showing up
in subsequent queries. Prefetching is what fixed it for me. You can apply prefetching to ObjectSelect
as well as SelectQuery as in the docs.

________________________________________
From: Andrus Adamchik <andrus@objectstyle.org>
Sent: Wednesday, April 20, 2016 2:54 AM
To: user@cayenne.apache.org
Subject: Re: Object relationship freshness

> *changing this to “false”

While this may solve the immediate problem, turning off shared object cache is not terribly
efficient. I would recommend against it.

>>> weirdly I see one of the
>>> relationship queries fire again, but not the other…either way both objects
>>> “snapshots” (EOF term) are as they were originally

If you actually see SQL in the logs that reads a relationship, it should absolutely refresh
the cache.

Generally if you don't want to-one relationships to be resolved from cache, the most reliable
approach is to use prefetching on the query that fetched the root object.

Andrus



> On Apr 20, 2016, at 2:07 AM, Lon Varscsak <lon.varscsak@gmail.com> wrote:
>
> *changing this to “false”
>
> On Tue, Apr 19, 2016 at 4:07 PM, Lon Varscsak <lon.varscsak@gmail.com>
> wrote:
>
>> It looks like I had cayenne.DataDomain.sharedCache=true in my model.
>> Changing this to default solved my issue.  Seem reasonable?
>>
>> On Tue, Apr 19, 2016 at 3:50 PM, Lon Varscsak <lon.varscsak@gmail.com>
>> wrote:
>>
>>> Hey guys,
>>>
>>> I’m executing a query and then referencing the fetched object and some
>>> relationships on the fetched object.  Later, I create a new ObjectContext
>>> (old one is thrown away) and I issue the fetch again and I notice that the
>>> relationship objects are not refreshed (weirdly I see one of the
>>> relationship queries fire again, but not the other…either way both objects
>>> “snapshots” (EOF term) are as they were originally).
>>>
>>> I’m not caching any results, shouldn’t data go stale after it’s
>>> ObjectContext is gone?
>>>
>>> -Lon
>>>
>>
>>

Mime
View raw message