Re: Question about Caching.

From: Nikos Paraschou (niparas..mail.com)
Date: Tue Apr 21 2009 - 07:49:21 EDT

  • Next message: Michael Gentry: "Re: Best Practices Question"

    Στις 21-04-2009, ημέρα Τρι, και ώρα 13:58 +0300, ο/η Andrus Adamchik
    έγραψε:
    > Yes, this is normal. Altering parameters changes the query, so in two
    > case you end up with two different queries behind the scenes, each
    > cached separately.

    It is clear now. Thank you for helping.

    Nikos

    >
    > Andrus
    >
    >
    > On Apr 21, 2009, at 1:50 PM, Nikos Paraschou wrote:
    > > Στις 21-04-2009, ημέρα Τρι, και ώρα 13:21 +0300, ο/
    > > η Andrus Adamchik
    > > έγραψε:
    > >>> Shouldn't it first look in cache?
    > >>
    > >>
    > >> Yes it should. Are you using the same set of parameters in both
    > >> cases?
    > >
    > > In the first case I am just calling the query "selectVehicles" which
    > > is
    > > stored in DataMap without defining any parameters. All vehicles are
    > > returned.
    > >
    > > In the second case I want to retrieve a specific vehicle so I define
    > > the
    > > parameter plate
    > >
    > > params.put("plate", "koz-6657") and call
    > >
    > > performQuery("selectVehicles", params, false);
    > >
    > > The second call doesn't retrieve the requested vehicle from the cache
    > > but instead, it sends a query to the DB.
    > >
    > > Why is this happening? Is it normal?
    > >
    > >
    > >> And also which version of Cayenne is this?
    > >
    > > I am using Cayenne 2.0.4.
    > >
    > >>
    > >> Andrus
    > >>
    > >>
    > >> On Apr 21, 2009, at 12:28 PM, Nikos Paraschou wrote:
    > >>
    > >>> Hello,
    > >>>
    > >>> I created an Object Select Query in the Modeller which selects *
    > >>> from
    > >>> table Vehicles. The query has a qualifier (plate = $plate). In
    > >>> Result
    > >>> Caching I selected Shared Cache and unchecked the checkbox Refresh
    > >>> Results.
    > >>>
    > >>> I wrote the following code:
    > >>>
    > >>> Map params = new HashMap();
    > >>> params.put("plate", "koz-6657");
    > >>>
    > >>> List allVehicles = context.performQuery("selectVehicles",
    > >>> false);
    > >>> List specificVehicle = context.performQuery("selectVehicles",
    > >>> params, false);
    > >>>
    > >>> I noticed that the first call of performQuery stores the retrieved
    > >>> Vehicle Objects in cache.
    > >>> But the second call, instead of getting the specific vehicle from
    > >>> cache
    > >>> it sends a query to the database.
    > >>>
    > >>> Why is this happening? Shouldn't it first look in cache?
    > >>>
    > >>> Thank you,
    > >>> Nikos Paraschou
    > >>>
    > >>>
    > >>
    > >
    > >
    >



    This archive was generated by hypermail 2.0.0 : Tue Apr 21 2009 - 07:48:57 EDT