Hi Andrus,

Yes, superclass/subclass. We are using Cayenne.objectForQuery(...);

Specifically,

Cayenne.*objectForQuery*(dataContext, *new* ObjectIdQuery(oid, *false*,
ObjectIdQuery.*CACHE*));

On Wed, May 18, 2016 at 10:11 AM, Andrus Adamchik <and...@objectstyle.org>
wrote:

> > I have a question and an observation. While reading some of the Cayenne
> > code, we've noticed reference to a snapshot cache. Is this the object
> > cache, or something different?
>
> Correct. This is shared object cache.
>
> > The issue we are seeing has to do with cayenne objects that are
> > parents/children of other cayenne objects. For instance, we have a User
> > object, we also have Staff and Patient objects that are children of the
> > User object.
>
> By parent/child you mean superclass/subclass?
>
> >
> > What we have seen is that if a developer does a query for a User object
> by
> > id, the object is retrieved. Cayenne sees that this object is a Staff
> > object and then stores it in the object cache as a Staff object. The next
> > time the user goes to retrieve the User object (by the same id), Cayenne
> > does another call to the database, because it cannot find the User object
> > in the cache (because it stored it as a Staff object).
>
> Could be a bug. Which API are you using? Cayenne.objectForPK(..) ?
>
> Andrus
>
>
>
> > On May 18, 2016, at 4:31 PM, Frank Herrmann <
> frank.herrm...@modernizingmedicine.com> wrote:
> >
> > Hello all,
> >
> > I have a question and an observation. While reading some of the Cayenne
> > code, we've noticed reference to a snapshot cache. Is this the object
> > cache, or something different?
> >
> > The issue we are seeing has to do with cayenne objects that are
> > parents/children of other cayenne objects. For instance, we have a User
> > object, we also have Staff and Patient objects that are children of the
> > User object.
> >
> > What we have seen is that if a developer does a query for a User object
> by
> > id, the object is retrieved. Cayenne sees that this object is a Staff
> > object and then stores it in the object cache as a Staff object. The next
> > time the user goes to retrieve the User object (by the same id), Cayenne
> > does another call to the database, because it cannot find the User object
> > in the cache (because it stored it as a Staff object).
> >
> > Thanks again for the help.
> >
> > -Frank
> >
> > --
> > FRANK HERRMANN
> > SOFTWARE ENGINEER
> >
> > T: 561-880-2998 x1563
> >
> > E: frank.herrm...@modmed.com
> >
> >
> >
> > [image: [ Modernizing Medicine ]] <http://www.modmed.com/>
> > [image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine>
> [image:
> > [ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/>
> [image:
> > [ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image: [
> > Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
> > <http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
> > <http://instagram.com/modernizing_medicine>
>
>


-- 
FRANK HERRMANN
SOFTWARE ENGINEER

T: 561-880-2998 x1563

E: frank.herrm...@modmed.com



[image: [ Modernizing Medicine ]] <http://www.modmed.com/>
[image: [ Facebook ]] <http://www.facebook.com/modernizingmedicine> [image:
[ LinkedIn ]] <http://www.linkedin.com/company/modernizing-medicine/> [image:
[ YouTube ]] <http://www.youtube.com/user/modernizingmedicine> [image: [
Twitter ]] <https://twitter.com/modmed_EMA> [image: [ Blog ]]
<http://www.modmed.com/BlogBeyondEMR> [image: [ Instagram ]]
<http://instagram.com/modernizing_medicine>

Reply via email to