code: public <T> T get(String queryString, List<FieldAccumulator> accumulators, Object queryTypeDiscriminator, QueryCreator<T> queryCreator) {
        QueryCacheKey key = new QueryCacheKey(queryString, accumulators, queryTypeDiscriminator);
        return (T) getCache().computeIfAbsent(key, (k) -> queryCreator.create(k.queryString, k.accumulators));
     }
docs: Gets the cached query object. The key used for lookup is an object pair containing the query string and a
  discriminator value which is usually the Class of the cached query object and an optional {@link List} of {@link
  FieldAccumulator}s.