/** * Returns a replacement query, creating it on demand and caching it for * reuse. */ protected Query getReplacementQuery(EntityResolver resolver) { if (replacementQuery == null || lastResolver != resolver) { this.replacementQuery = createReplacementQuery(resolver); this.lastResolver = resolver; } return replacementQuery; }
/** * Delegates routing to a replacement query. */ @Override public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery) { getReplacementQuery(resolver).route(router, resolver, substitutedQuery != null ? substitutedQuery : this); }
@Override public QueryMetadata getMetaData(EntityResolver resolver) { QueryMetadata base = overrideMetadata != null ? overrideMetadata : super.getMetaData(resolver); QueryMetadataWrapper wrapper = new QueryMetadataWrapper(base); // override cache policy, forcing refresh if needed if (forceNoCache) { QueryCacheStrategy strategy = base.getCacheStrategy(); if (QueryCacheStrategy.LOCAL_CACHE == strategy) { wrapper.override(QueryMetadata.CACHE_STRATEGY_PROPERTY, QueryCacheStrategy.LOCAL_CACHE_REFRESH); } else if (QueryCacheStrategy.SHARED_CACHE == strategy) { wrapper.override(QueryMetadata.CACHE_STRATEGY_PROPERTY, QueryCacheStrategy.SHARED_CACHE_REFRESH); } } // override cache key to include parameters if (parameters != null && !parameters.isEmpty() && replacementQuery instanceof NamedQuery && base.getCacheKey() != null) { // TODO: andrus, 3/29/2006 this is taken from SelectQuery...probably need a // central place for converting parameters to a cache key StringBuilder buffer = new StringBuilder(name); if (parameters != null && !parameters.isEmpty()) { buffer.append(parameters.hashCode()); } wrapper.override(QueryMetadataWrapper.CACHE_KEY_PROPERTY, buffer.toString()); } return wrapper; }
/** * Returns the metadata obtained from the replacement query. */ @Override public QueryMetadata getMetaData(EntityResolver resolver) { return getReplacementQuery(resolver).getMetaData(resolver); }
public QueryMetadata getMetaData(EntityResolver resolver) { .getMetaData(resolver);
/** * Delegates routing to a replacement query. */ public void route(QueryRouter router, EntityResolver resolver, Query substitutedQuery) { getReplacementQuery(resolver).route( router, resolver, substitutedQuery != null ? substitutedQuery : this); }
/** * Returns a replacement query, creating it on demand and caching it for reuse. */ protected Query getReplacementQuery(EntityResolver resolver) { if (replacementQuery == null || lastResolver != resolver) { this.replacementQuery = createReplacementQuery(resolver); this.lastResolver = resolver; } return replacementQuery; }
/** * Returns the metadata obtained from the replacement query. */ public QueryMetadata getMetaData(EntityResolver resolver) { return getReplacementQuery(resolver).getMetaData(resolver); }