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 <and...@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.varsc...@gmail.com> wrote: > > *changing this to “false” > > On Tue, Apr 19, 2016 at 4:07 PM, Lon Varscsak <lon.varsc...@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.varsc...@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 >>> >> >>