code: public String getCacheKey() {
  		StringBuilder builder = new StringBuilder(100);
  		builder.append("qdata{");
  		addCommonCacheKeyParts(builder);
  		if(fetchOptions.getOffset() != null) {
  			builder.append(",off=").append(fetchOptions.getOffset());
  		}
  		if(fetchOptions.getLimit() != null) {
  			builder.append(",lim=").append(fetchOptions.getLimit());
  		}
  		if (fetchOptions.getStartCursor() != null) {
  			builder.append(",start=").append(fetchOptions.getStartCursor().toWebSafeString());
  		}
  		if (fetchOptions.getEndCursor() != null) {
  			builder.append(",end=").append(fetchOptions.getEndCursor().toWebSafeString());
  		}
  		builder.append("}");
  		return builder.toString();
  	}
docs: Calculate the cache key to use for query data. This method combines the query kind, any filter predicates,
  the start/end cursors and limit / offset values to produce a cache key