[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[eclipselink-users] Re: Caching read-all queries
|
I've already tried the following:
Session session =
JpaHelper.getServerSession(em.getEntityManagerFactory());
ReadAllQuery q = new ReadAllQuery(Person.class);
q.setJPQLString("SELECT OBJECT(p) FROM Person p");
q.addArgument("1");
q.addArgument("3");
List args = new ArrayList();
args.add(activityCode);
q.cacheQueryResults();
q.cacheStatement();
q.setQueryResultsCachePolicy(new QueryResultsCachePolicy(new
TimeToLiveCacheInvalidationPolicy(60000));
List list = session.executeQuery(q, args);
Despite this, it still prints the SQL twice in the logs on successive
calls. This is based on the example shown here:
http://wiki.eclipse.org/EclipseLink/Examples/JPA/ORMQueries#A_Simple_ReadAllQuery_Using_JPQL
On Wed, May 19, 2010 at 6:05 PM, Zarar Siddiqi <zarars@xxxxxxxxx> wrote:
> I'm using 1.2 and have a couple cache related questions.
>
> Do read-all queries (ones using getResultList()) always hit the database?
>
> As I understand the docs, the "CheckCacheThenDatabase" hit only
> applies to read-object queries (ones using getSingleResult()). In my
> app, I have a ton of queries that are candidates for caching, but they
> all use getResultList(). I've set an @Cache(expiry=60000) annotation
> on those entities and when I execute them, I keep seeing the queries
> printed in the logs.
>
> To me, this isn't the greatest behaviour since I'm executing the exact
> same query with the exact same parameters. Shouldn't EclipseLink have
> a way of optimizing this?
>
> Thanks,
> Zarar
>
--
Zarar Siddiqi
416-737-9024