Thanks for the in depth response. Looks good to me then.
--
Kevin
On Sep 12, 2005, at 1:49 PM, Gentry, Michael (Contractor) wrote:
> The hash is computed based on the parameters and values supplied to
> the query. So, if your expression was:
>
> "firstName = $firstName and lastName = $lastName"
>
> So, assuming your query was supplied $firstName and $lastName, it
> would compute the name as:
>
> queryName + hash("firstName") + hash($firstName) + hash("lastName")
> + hash($lastName)
>
> When $firstName and $lastName have the same values, you'll get the
> same overall query string, which will allow Cayenne to do caching.
> If any of the parameter variables change (or are omitted), a
> different hash is computed which will generate a different name and
> Cayenne can pull that out of the cache or do a new query and cache
> the results.
>
> My test case looked like:
>
> Expression (set to be cached):
>
> (isFilled = 0) or (orderID = $orderID)
>
> Code:
>
> 1: // Call SelectQuery defined in Cayenne Modeler
> 2: Map tmap = new HashMap();
> 3: tmap.put("orderID", "foo");
> 4: List result = dataContext.performQuery("UnfilledOrders", tmap,
> false);
> 5: logger.info("Unfilled Orders = " + result);
> 6: result = dataContext.performQuery("UnfilledOrders", tmap, false);
> 7: tmap.put("orderID", "bar");
> 8: result = dataContext.performQuery("UnfilledOrders", tmap, false);
> 9: tmap.put("orderID", "foo");
> 10: result = dataContext.performQuery("UnfilledOrders", tmap, false);
>
> Line 4 resulted in 5 rows being fetched (I hadn't done this fetch
> previously, and 5 rows is the correct number). Line 6 resulted in
> 0 rows being fetched, but 5 rows returned from the cache. Line 8
> resulted in 5 rows being fetched (parameter value changed) and
> returned. Line 10 resulted in 0 rows being fetched, but 5 rows
> returned from the cache.
>
> I played around with other variants, but this was my final test
> case. Seems to be working. I sent an updated JAR to Jeff and it
> seems to be working for him, too.
>
> /dev/mrg
This archive was generated by hypermail 2.0.0 : Mon Sep 12 2005 - 13:55:03 EDT