Search in sources :

Example 1 with QueryKey

use of org.hibernate.cache.spi.QueryKey in project hibernate-orm by hibernate.

the class Loader method listUsingQueryCache.

private List listUsingQueryCache(final SharedSessionContractImplementor session, final QueryParameters queryParameters, final Set<Serializable> querySpaces, final Type[] resultTypes) {
    QueryCache queryCache = factory.getCache().getQueryCache(queryParameters.getCacheRegion());
    QueryKey key = generateQueryKey(session, queryParameters);
    if (querySpaces == null || querySpaces.size() == 0) {
        LOG.tracev("Unexpected querySpaces is {0}", (querySpaces == null ? querySpaces : "empty"));
    } else {
        LOG.tracev("querySpaces is {0}", querySpaces);
    }
    List result = getResultFromQueryCache(session, queryParameters, querySpaces, resultTypes, queryCache, key);
    if (result == null) {
        result = doList(session, queryParameters, key.getResultTransformer());
        putResultInQueryCache(session, queryParameters, resultTypes, queryCache, key, result);
    }
    ResultTransformer resolvedTransformer = resolveResultTransformer(queryParameters.getResultTransformer());
    if (resolvedTransformer != null) {
        result = (areResultSetRowsTransformedImmediately() ? key.getResultTransformer().retransformResults(result, getResultRowAliases(), queryParameters.getResultTransformer(), includeInResultRow()) : key.getResultTransformer().untransformToTuples(result));
    }
    return getResultList(result, queryParameters.getResultTransformer());
}
Also used : QueryCache(org.hibernate.cache.spi.QueryCache) QueryKey(org.hibernate.cache.spi.QueryKey) CacheableResultTransformer(org.hibernate.transform.CacheableResultTransformer) ResultTransformer(org.hibernate.transform.ResultTransformer) List(java.util.List) ArrayList(java.util.ArrayList)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 QueryCache (org.hibernate.cache.spi.QueryCache)1 QueryKey (org.hibernate.cache.spi.QueryKey)1 CacheableResultTransformer (org.hibernate.transform.CacheableResultTransformer)1 ResultTransformer (org.hibernate.transform.ResultTransformer)1