code: public static QueryLookupStrategy create(EbeanServer ebeanServer, Key key,
                                               QueryMethodEvaluationContextProvider evaluationContextProvider) {
  
          Assert.notNull(ebeanServer, "EbeanServer must not be null!");
          Assert.notNull(evaluationContextProvider, "EvaluationContextProvider must not be null!");
  
          switch (key != null ? key : Key.CREATE_IF_NOT_FOUND) {
              case CREATE:
                  return new CreateQueryLookupStrategy(ebeanServer);
              case USE_DECLARED_QUERY:
                  return new DeclaredQueryLookupStrategy(ebeanServer, evaluationContextProvider);
              case CREATE_IF_NOT_FOUND:
                  return new CreateIfNotFoundQueryLookupStrategy(ebeanServer, new CreateQueryLookupStrategy(ebeanServer),
                          new DeclaredQueryLookupStrategy(ebeanServer, evaluationContextProvider));
              default:
                  throw new IllegalArgumentException(String.format("Unsupported query lookup strategy %s!", key));
          }
      }
docs: Creates a {@link QueryLookupStrategy} for the given {@link EbeanServer} and {@link Key}.
  
  @param ebeanServer               must not be {@literal null}.
  @param key                       may be {@literal null}.
  @param evaluationContextProvider must not be {@literal null}.
  @return