docs: protected SqlQuerySpec generateQuery(@NonNull DocumentQuery query, @NonNull String queryHead) {
          Assert.hasText(queryHead, "query head should have text.");
  
          final Pair<String, List<Pair<String, Object>>> queryBody = generateQueryBody(query);
          final String queryString = String.join(" ", queryHead, queryBody.getValue0(), generateQueryTail(query));
          final List<Pair<String, Object>> parameters = queryBody.getValue1();
          final SqlParameterCollection sqlParameters = new SqlParameterCollection();
  
          sqlParameters.addAll(
                  parameters.stream()
                          .map(p -> new SqlParameter("@" + p.getValue0(), toDocumentDBValue(p.getValue1())))
                          .collect(Collectors.toList())
          );
  
          return new SqlQuerySpec(queryString, sqlParameters);
      }