mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-22 12:02:10 +00:00
Adopt to deprecation removals in Commons.
Original Pull Request #3051 Closes #3050 Signed-off-by: Peter-Josef Meisch <pj.meisch@sothawo.com>
This commit is contained in:
parent
cb77b328ae
commit
ea62cf0abd
@ -25,9 +25,9 @@ import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.Query;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery;
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ParametersParameterAccessor;
|
||||
import org.springframework.data.repository.query.QueryMethod;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.RepositoryQuery;
|
||||
import org.springframework.data.repository.query.ResultProcessor;
|
||||
import org.springframework.data.util.StreamUtils;
|
||||
@ -50,11 +50,11 @@ public abstract class AbstractElasticsearchRepositoryQuery implements Repository
|
||||
protected ElasticsearchQueryMethod queryMethod;
|
||||
protected final ElasticsearchOperations elasticsearchOperations;
|
||||
protected final ElasticsearchConverter elasticsearchConverter;
|
||||
protected final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
protected final ValueEvaluationContextProvider evaluationContextProvider;
|
||||
|
||||
public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod,
|
||||
ElasticsearchOperations elasticsearchOperations,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
Assert.notNull(queryMethod, "queryMethod must not be null");
|
||||
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");
|
||||
|
@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
@ -52,11 +53,11 @@ abstract class AbstractReactiveElasticsearchRepositoryQuery implements Repositor
|
||||
|
||||
protected final ReactiveElasticsearchQueryMethod queryMethod;
|
||||
private final ReactiveElasticsearchOperations elasticsearchOperations;
|
||||
protected final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
protected final ValueEvaluationContextProvider evaluationContextProvider;
|
||||
|
||||
AbstractReactiveElasticsearchRepositoryQuery(ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations elasticsearchOperations,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
Assert.notNull(queryMethod, "queryMethod must not be null");
|
||||
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");
|
||||
|
@ -16,12 +16,7 @@
|
||||
package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.parser.PartTree;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
|
||||
/**
|
||||
* ElasticsearchPartQuery
|
||||
@ -37,7 +32,8 @@ import org.springframework.data.repository.query.parser.PartTree;
|
||||
*/
|
||||
@Deprecated(forRemoval = true)
|
||||
public class ElasticsearchPartQuery extends RepositoryPartQuery {
|
||||
public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(method, elasticsearchOperations, evaluationContextProvider);
|
||||
public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations,
|
||||
ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(method, elasticsearchOperations, valueExpressionDelegate);
|
||||
}
|
||||
}
|
||||
|
@ -44,6 +44,7 @@ import org.springframework.data.elasticsearch.core.query.RuntimeField;
|
||||
import org.springframework.data.elasticsearch.core.query.ScriptedField;
|
||||
import org.springframework.data.elasticsearch.core.query.SourceFilter;
|
||||
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.projection.ProjectionFactory;
|
||||
import org.springframework.data.repository.core.RepositoryMetadata;
|
||||
@ -105,13 +106,6 @@ public class ElasticsearchQueryMethod extends QueryMethod {
|
||||
verifyCountQueryTypes();
|
||||
}
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
@Override
|
||||
@Deprecated
|
||||
protected Parameters<?, ?> createParameters(Method method, TypeInformation<?> domainType) {
|
||||
return new ElasticsearchParameters(ParametersSource.of(method));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Parameters<?, ?> createParameters(ParametersSource parametersSource) {
|
||||
return new ElasticsearchParameters(parametersSource);
|
||||
@ -331,7 +325,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
|
||||
@Nullable
|
||||
SourceFilter getSourceFilter(ElasticsearchParametersParameterAccessor parameterAccessor,
|
||||
ElasticsearchConverter converter,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
if (sourceFilters == null || (sourceFilters.includes().length == 0 && sourceFilters.excludes().length == 0)) {
|
||||
return null;
|
||||
@ -354,7 +348,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
|
||||
}
|
||||
|
||||
private String[] mapParameters(String[] source, ElasticsearchParametersParameterAccessor parameterAccessor,
|
||||
ConversionService conversionService, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ConversionService conversionService, ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
List<String> fieldNames = new ArrayList<>();
|
||||
|
||||
@ -407,7 +401,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
|
||||
|
||||
void addSpecialMethodParameters(BaseQuery query, ElasticsearchParametersParameterAccessor parameterAccessor,
|
||||
ElasticsearchConverter elasticsearchConverter,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
if (hasAnnotatedHighlight()) {
|
||||
var highlightQuery = getAnnotatedHighlightQuery(new HighlightConverter(parameterAccessor,
|
||||
|
@ -16,7 +16,7 @@
|
||||
package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
|
||||
/**
|
||||
* ElasticsearchStringQuery
|
||||
@ -32,7 +32,7 @@ import org.springframework.data.repository.query.QueryMethodEvaluationContextPro
|
||||
@Deprecated(since = "5.5", forRemoval = true)
|
||||
public class ElasticsearchStringQuery extends RepositoryStringQuery {
|
||||
public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations,
|
||||
String queryString, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(queryMethod, elasticsearchOperations, queryString, evaluationContextProvider);
|
||||
String queryString, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(queryMethod, elasticsearchOperations, queryString, valueExpressionDelegate);
|
||||
}
|
||||
}
|
||||
|
@ -25,8 +25,8 @@ import org.springframework.data.elasticsearch.core.query.highlight.Highlight;
|
||||
import org.springframework.data.elasticsearch.core.query.highlight.HighlightField;
|
||||
import org.springframework.data.elasticsearch.core.query.highlight.HighlightParameters;
|
||||
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.QueryMethod;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@ -38,12 +38,12 @@ public class HighlightConverter {
|
||||
|
||||
private final ElasticsearchParametersParameterAccessor parameterAccessor;
|
||||
private final ConversionService conversionService;
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
private final ValueEvaluationContextProvider evaluationContextProvider;
|
||||
private final QueryMethod queryMethod;
|
||||
|
||||
HighlightConverter(ElasticsearchParametersParameterAccessor parameterAccessor,
|
||||
ConversionService conversionService,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider,
|
||||
ValueEvaluationContextProvider evaluationContextProvider,
|
||||
QueryMethod queryMethod) {
|
||||
|
||||
Assert.notNull(parameterAccessor, "parameterAccessor must not be null");
|
||||
|
@ -15,8 +15,6 @@
|
||||
*/
|
||||
package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import static org.springframework.data.repository.util.ClassUtils.*;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@ -36,6 +34,7 @@ import org.springframework.data.repository.core.RepositoryMetadata;
|
||||
import org.springframework.data.repository.util.ReactiveWrapperConverters;
|
||||
import org.springframework.data.util.Lazy;
|
||||
import org.springframework.data.util.ReactiveWrappers;
|
||||
import org.springframework.data.util.ReflectionUtils;
|
||||
import org.springframework.data.util.TypeInformation;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
@ -55,7 +54,7 @@ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod {
|
||||
|
||||
super(method, metadata, factory, mappingContext);
|
||||
|
||||
if (hasParameterOfType(method, Pageable.class)) {
|
||||
if (ReflectionUtils.hasParameterOfType(method, Pageable.class)) {
|
||||
|
||||
TypeInformation<?> returnType = TypeInformation.fromReturnTypeOf(method);
|
||||
boolean multiWrapper = ReactiveWrappers.isMultiValueType(returnType.getType());
|
||||
@ -75,7 +74,7 @@ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod {
|
||||
method));
|
||||
}
|
||||
|
||||
if (hasParameterOfType(method, Sort.class)) {
|
||||
if (ReflectionUtils.hasParameterOfType(method, Sort.class)) {
|
||||
throw new IllegalStateException(String.format("Method must not have Pageable *and* Sort parameter. "
|
||||
+ "Use sorting capabilities on Pageable instead! Offending method: %s", method));
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@ -29,12 +29,12 @@ import org.springframework.data.repository.query.QueryMethodEvaluationContextPro
|
||||
public class ReactiveElasticsearchStringQuery extends ReactiveRepositoryStringQuery {
|
||||
|
||||
public ReactiveElasticsearchStringQuery(ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(queryMethod, operations, evaluationContextProvider);
|
||||
ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(queryMethod, operations, valueExpressionDelegate);
|
||||
}
|
||||
|
||||
public ReactiveElasticsearchStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(query, queryMethod, operations, evaluationContextProvider);
|
||||
ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(query, queryMethod, operations, valueExpressionDelegate);
|
||||
}
|
||||
}
|
||||
|
@ -19,8 +19,8 @@ import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperatio
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ResultProcessor;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.data.repository.query.parser.PartTree;
|
||||
|
||||
/**
|
||||
@ -35,8 +35,9 @@ public class ReactivePartTreeElasticsearchQuery extends AbstractReactiveElastics
|
||||
|
||||
public ReactivePartTreeElasticsearchQuery(ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations elasticsearchOperations,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
|
||||
ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(queryMethod, elasticsearchOperations,
|
||||
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
|
||||
|
||||
ResultProcessor processor = queryMethod.getResultProcessor();
|
||||
this.tree = new PartTree(queryMethod.getName(), processor.getReturnedType().getDomainType());
|
||||
|
@ -18,11 +18,10 @@ package org.springframework.data.elasticsearch.repository.query;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@ -37,9 +36,11 @@ public class ReactiveRepositorySearchTemplateQuery extends AbstractReactiveElast
|
||||
private Map<String, Object> params;
|
||||
|
||||
public ReactiveRepositorySearchTemplateQuery(ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider,
|
||||
ReactiveElasticsearchOperations elasticsearchOperations,
|
||||
ValueExpressionDelegate valueExpressionDelegate,
|
||||
String id) {
|
||||
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
|
||||
super(queryMethod, elasticsearchOperations,
|
||||
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
|
||||
Assert.hasLength(id, "id must not be null or empty");
|
||||
this.id = id;
|
||||
}
|
||||
|
@ -21,10 +21,12 @@ import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
||||
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* Was originally named ReactiveElasticsearchStringQuery.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @author Taylor Ono
|
||||
* @author Haibo Liu
|
||||
@ -33,23 +35,20 @@ import org.springframework.util.Assert;
|
||||
public class ReactiveRepositoryStringQuery extends AbstractReactiveElasticsearchRepositoryQuery {
|
||||
|
||||
private final String query;
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
|
||||
public ReactiveRepositoryStringQuery(ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
|
||||
this(queryMethod.getAnnotatedQuery(), queryMethod, operations, evaluationContextProvider);
|
||||
this(queryMethod.getAnnotatedQuery(), queryMethod, operations, valueExpressionDelegate);
|
||||
}
|
||||
|
||||
public ReactiveRepositoryStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod,
|
||||
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(queryMethod, operations, evaluationContextProvider);
|
||||
ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(queryMethod, operations, valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
|
||||
|
||||
Assert.notNull(query, "query must not be null");
|
||||
Assert.notNull(evaluationContextProvider, "evaluationContextProvider must not be null");
|
||||
|
||||
this.query = query;
|
||||
this.evaluationContextProvider = evaluationContextProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -20,12 +20,12 @@ import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersiste
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.data.repository.query.parser.PartTree;
|
||||
|
||||
/**
|
||||
* A repository query that is built from the the method name in the repository definition.
|
||||
* Was originally named ElasticsearchPartQuery.
|
||||
* A repository query that is built from the the method name in the repository definition. Was originally named
|
||||
* ElasticsearchPartQuery.
|
||||
*
|
||||
* @author Rizwan Idrees
|
||||
* @author Mohsin Husen
|
||||
@ -41,8 +41,9 @@ public class RepositoryPartQuery extends AbstractElasticsearchRepositoryQuery {
|
||||
private final MappingContext<?, ElasticsearchPersistentProperty> mappingContext;
|
||||
|
||||
public RepositoryPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(method, elasticsearchOperations, evaluationContextProvider);
|
||||
ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(method, elasticsearchOperations,
|
||||
valueExpressionDelegate.createValueContextProvider(method.getParameters()));
|
||||
this.tree = new PartTree(queryMethod.getName(), queryMethod.getResultProcessor().getReturnedType().getDomainType());
|
||||
this.mappingContext = elasticsearchConverter.getMappingContext();
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ import java.util.Map;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
@ -36,9 +36,10 @@ public class RepositorySearchTemplateQuery extends AbstractElasticsearchReposito
|
||||
private Map<String, Object> params;
|
||||
|
||||
public RepositorySearchTemplateQuery(ElasticsearchQueryMethod queryMethod,
|
||||
ElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider,
|
||||
ElasticsearchOperations elasticsearchOperations, ValueExpressionDelegate valueExpressionDelegate,
|
||||
String id) {
|
||||
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
|
||||
super(queryMethod, elasticsearchOperations,
|
||||
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
|
||||
Assert.hasLength(id, "id must not be null or empty");
|
||||
this.id = id;
|
||||
}
|
||||
|
@ -5,12 +5,11 @@ import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||
import org.springframework.data.elasticsearch.core.query.BaseQuery;
|
||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
||||
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* A repository query that is defined by a String containing the query.
|
||||
* Was originally named ElasticsearchStringQuery.
|
||||
* A repository query that is defined by a String containing the query. Was originally named ElasticsearchStringQuery.
|
||||
*
|
||||
* @author Rizwan Idrees
|
||||
* @author Mohsin Husen
|
||||
@ -23,11 +22,11 @@ public class RepositoryStringQuery extends AbstractElasticsearchRepositoryQuery
|
||||
private final String queryString;
|
||||
|
||||
public RepositoryStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations,
|
||||
String queryString, QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
super(queryMethod, elasticsearchOperations, evaluationContextProvider);
|
||||
String queryString, ValueExpressionDelegate valueExpressionDelegate) {
|
||||
super(queryMethod, elasticsearchOperations,
|
||||
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
|
||||
|
||||
Assert.notNull(queryString, "Query cannot be empty");
|
||||
Assert.notNull(evaluationContextProvider, "ExpressionEvaluationContextProvider must not be null");
|
||||
|
||||
this.queryString = queryString;
|
||||
}
|
||||
|
@ -38,8 +38,8 @@ import org.springframework.data.repository.core.support.RepositoryFragment;
|
||||
import org.springframework.data.repository.query.QueryByExampleExecutor;
|
||||
import org.springframework.data.repository.query.QueryLookupStrategy;
|
||||
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.RepositoryQuery;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@ -97,16 +97,16 @@ public class ElasticsearchRepositoryFactory extends RepositoryFactorySupport {
|
||||
|
||||
@Override
|
||||
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
return Optional.of(new ElasticsearchQueryLookupStrategy(evaluationContextProvider));
|
||||
ValueExpressionDelegate valueExpressionDelegate) {
|
||||
return Optional.of(new ElasticsearchQueryLookupStrategy(valueExpressionDelegate));
|
||||
}
|
||||
|
||||
private class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
|
||||
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
private final ValueExpressionDelegate valueExpressionDelegate;
|
||||
|
||||
ElasticsearchQueryLookupStrategy(QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
this.evaluationContextProvider = evaluationContextProvider;
|
||||
ElasticsearchQueryLookupStrategy(ValueExpressionDelegate valueExpressionDelegate) {
|
||||
this.valueExpressionDelegate = valueExpressionDelegate;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -124,16 +124,16 @@ public class ElasticsearchRepositoryFactory extends RepositoryFactorySupport {
|
||||
if (namedQueries.hasQuery(namedQueryName)) {
|
||||
String namedQuery = namedQueries.getQuery(namedQueryName);
|
||||
return new RepositoryStringQuery(queryMethod, elasticsearchOperations, namedQuery,
|
||||
evaluationContextProvider);
|
||||
valueExpressionDelegate);
|
||||
} else if (queryMethod.hasAnnotatedQuery()) {
|
||||
return new RepositoryStringQuery(queryMethod, elasticsearchOperations, queryMethod.getAnnotatedQuery(),
|
||||
evaluationContextProvider);
|
||||
valueExpressionDelegate);
|
||||
} else if (queryMethod.hasAnnotatedSearchTemplateQuery()) {
|
||||
var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery();
|
||||
return new RepositorySearchTemplateQuery(queryMethod, elasticsearchOperations, evaluationContextProvider,
|
||||
return new RepositorySearchTemplateQuery(queryMethod, elasticsearchOperations, valueExpressionDelegate,
|
||||
searchTemplateQuery.id());
|
||||
}
|
||||
return new RepositoryPartQuery(queryMethod, elasticsearchOperations, evaluationContextProvider);
|
||||
return new RepositoryPartQuery(queryMethod, elasticsearchOperations, valueExpressionDelegate);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@ package org.springframework.data.elasticsearch.repository.support;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.data.elasticsearch.repository.query.ElasticsearchParametersParameterAccessor;
|
||||
import org.springframework.data.elasticsearch.repository.support.spel.QueryStringSpELEvaluator;
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.QueryMethod;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.util.Assert;
|
||||
@ -34,10 +35,10 @@ public class QueryStringProcessor {
|
||||
private final String query;
|
||||
private final QueryMethod queryMethod;
|
||||
private final ConversionService conversionService;
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
private final ValueEvaluationContextProvider evaluationContextProvider;
|
||||
|
||||
public QueryStringProcessor(String query, QueryMethod queryMethod, ConversionService conversionService,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
ValueEvaluationContextProvider evaluationContextProvider) {
|
||||
|
||||
Assert.notNull(query, "query must not be null");
|
||||
Assert.notNull(queryMethod, "queryMethod must not be null");
|
||||
|
@ -26,7 +26,6 @@ import org.springframework.data.elasticsearch.repository.query.ReactiveElasticse
|
||||
import org.springframework.data.elasticsearch.repository.query.ReactivePartTreeElasticsearchQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.ReactiveRepositorySearchTemplateQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.ReactiveRepositoryStringQuery;
|
||||
import org.springframework.data.elasticsearch.repository.query.RepositorySearchTemplateQuery;
|
||||
import org.springframework.data.elasticsearch.repository.support.querybyexample.ReactiveQueryByExampleElasticsearchExecutor;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.projection.ProjectionFactory;
|
||||
@ -38,9 +37,9 @@ import org.springframework.data.repository.core.support.RepositoryComposition;
|
||||
import org.springframework.data.repository.core.support.RepositoryFragment;
|
||||
import org.springframework.data.repository.query.QueryLookupStrategy;
|
||||
import org.springframework.data.repository.query.QueryLookupStrategy.Key;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ReactiveQueryByExampleExecutor;
|
||||
import org.springframework.data.repository.query.RepositoryQuery;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
@ -94,14 +93,10 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
|
||||
return getTargetRepositoryViaReflection(information, entityInformation, operations);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getQueryLookupStrategy(org.springframework.data.repository.query.QueryLookupStrategy.Key, org.springframework.data.repository.query.EvaluationContextProvider)
|
||||
*/
|
||||
@Override
|
||||
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider) {
|
||||
return Optional.of(new ElasticsearchQueryLookupStrategy(operations, evaluationContextProvider, mappingContext));
|
||||
ValueExpressionDelegate valueExpressionDelegate) {
|
||||
return Optional.of(new ElasticsearchQueryLookupStrategy(operations, valueExpressionDelegate, mappingContext));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -132,19 +127,19 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
|
||||
private static class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
|
||||
|
||||
private final ReactiveElasticsearchOperations operations;
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
private final ValueExpressionDelegate valueExpressionDelegate;
|
||||
private final MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext;
|
||||
|
||||
public ElasticsearchQueryLookupStrategy(ReactiveElasticsearchOperations operations,
|
||||
QueryMethodEvaluationContextProvider evaluationContextProvider,
|
||||
ValueExpressionDelegate valueExpressionDelegate,
|
||||
MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) {
|
||||
|
||||
Assert.notNull(operations, "operations must not be null");
|
||||
Assert.notNull(evaluationContextProvider, "evaluationContextProvider must not be null");
|
||||
Assert.notNull(valueExpressionDelegate, "evaluationContextProvider must not be null");
|
||||
Assert.notNull(mappingContext, "mappingContext must not be null");
|
||||
|
||||
this.operations = operations;
|
||||
this.evaluationContextProvider = evaluationContextProvider;
|
||||
this.valueExpressionDelegate = valueExpressionDelegate;
|
||||
this.mappingContext = mappingContext;
|
||||
}
|
||||
|
||||
@ -164,15 +159,15 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
|
||||
String namedQuery = namedQueries.getQuery(namedQueryName);
|
||||
|
||||
return new ReactiveRepositoryStringQuery(namedQuery, queryMethod, operations,
|
||||
evaluationContextProvider);
|
||||
valueExpressionDelegate);
|
||||
} else if (queryMethod.hasAnnotatedQuery()) {
|
||||
return new ReactiveRepositoryStringQuery(queryMethod, operations, evaluationContextProvider);
|
||||
return new ReactiveRepositoryStringQuery(queryMethod, operations, valueExpressionDelegate);
|
||||
} else if (queryMethod.hasAnnotatedSearchTemplateQuery()) {
|
||||
var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery();
|
||||
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, evaluationContextProvider,
|
||||
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, valueExpressionDelegate,
|
||||
searchTemplateQuery.id());
|
||||
} else {
|
||||
return new ReactivePartTreeElasticsearchQuery(queryMethod, operations, evaluationContextProvider);
|
||||
return new ReactivePartTreeElasticsearchQuery(queryMethod, operations, valueExpressionDelegate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,8 +24,8 @@ import org.springframework.data.elasticsearch.repository.query.ElasticsearchPara
|
||||
import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchCollectionValueToStringConverter;
|
||||
import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchQueryValueConversionService;
|
||||
import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchStringValueToStringConverter;
|
||||
import org.springframework.data.expression.ValueEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.QueryMethod;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.expression.EvaluationContext;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.ParserContext;
|
||||
@ -53,11 +53,11 @@ public class QueryStringSpELEvaluator {
|
||||
private final String queryString;
|
||||
private final ElasticsearchParametersParameterAccessor parameterAccessor;
|
||||
private final QueryMethod queryMethod;
|
||||
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
|
||||
private final ValueEvaluationContextProvider evaluationContextProvider;
|
||||
private final TypeConverter elasticsearchSpELTypeConverter;
|
||||
|
||||
public QueryStringSpELEvaluator(String queryString, ElasticsearchParametersParameterAccessor parameterAccessor,
|
||||
QueryMethod queryMethod, QueryMethodEvaluationContextProvider evaluationContextProvider,
|
||||
QueryMethod queryMethod, ValueEvaluationContextProvider evaluationContextProvider,
|
||||
ConversionService conversionService) {
|
||||
|
||||
Assert.notNull(queryString, "queryString must not be null");
|
||||
@ -83,8 +83,8 @@ public class QueryStringSpELEvaluator {
|
||||
Expression expr = getQueryExpression(queryString);
|
||||
|
||||
if (expr != null) {
|
||||
EvaluationContext context = evaluationContextProvider.getEvaluationContext(parameterAccessor.getParameters(),
|
||||
parameterAccessor.getValues());
|
||||
EvaluationContext context = evaluationContextProvider.getEvaluationContext(parameterAccessor.getValues())
|
||||
.getRequiredEvaluationContext();
|
||||
|
||||
if (context instanceof StandardEvaluationContext standardEvaluationContext) {
|
||||
standardEvaluationContext.setTypeConverter(elasticsearchSpELTypeConverter);
|
||||
|
@ -36,6 +36,7 @@ import org.springframework.data.elasticsearch.repository.query.RepositoryPartQue
|
||||
import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
|
||||
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
/**
|
||||
@ -647,7 +648,7 @@ public abstract class RepositoryPartQueryIntegrationTests {
|
||||
new DefaultRepositoryMetadata(SampleRepository.class), new SpelAwareProxyProjectionFactory(),
|
||||
operations.getElasticsearchConverter().getMappingContext());
|
||||
RepositoryPartQuery partQuery = new RepositoryPartQuery(queryMethod, operations,
|
||||
QueryMethodEvaluationContextProvider.DEFAULT);
|
||||
ValueExpressionDelegate.create());
|
||||
Query query = partQuery.createQuery(parameters);
|
||||
return buildQueryString(query, Book.class);
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ import org.springframework.data.elasticsearch.annotations.SearchTemplateQuery;
|
||||
import org.springframework.data.elasticsearch.core.SearchHits;
|
||||
import org.springframework.data.elasticsearch.core.query.Query;
|
||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
public class ReactiveRepositorySearchTemplateQueryUnitTests extends ReactiveRepositoryQueryUnitTestsBase {
|
||||
@ -71,7 +71,7 @@ public class ReactiveRepositorySearchTemplateQueryUnitTests extends ReactiveRepo
|
||||
}
|
||||
|
||||
private ReactiveRepositorySearchTemplateQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) {
|
||||
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, QueryMethodEvaluationContextProvider.DEFAULT,
|
||||
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, ValueExpressionDelegate.create(),
|
||||
queryMethod.getAnnotatedSearchTemplateQuery().id());
|
||||
}
|
||||
// endregion
|
||||
|
@ -17,6 +17,7 @@ package org.springframework.data.elasticsearch.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
@ -419,7 +420,7 @@ public class ReactiveRepositoryStringQueryUnitTests extends ReactiveRepositoryQu
|
||||
|
||||
private ReactiveRepositoryStringQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) {
|
||||
return new ReactiveRepositoryStringQuery(queryMethod, operations,
|
||||
QueryMethodEvaluationContextProvider.DEFAULT);
|
||||
ValueExpressionDelegate.create());
|
||||
}
|
||||
|
||||
private interface SampleRepository extends Repository<Person, String> {
|
||||
|
@ -28,7 +28,7 @@ import org.springframework.data.elasticsearch.annotations.SearchTemplateQuery;
|
||||
import org.springframework.data.elasticsearch.core.SearchHits;
|
||||
import org.springframework.data.elasticsearch.core.query.Query;
|
||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
public class RepositorySearchTemplateQueryUnitTests extends RepositoryQueryUnitTestsBase {
|
||||
@ -71,7 +71,7 @@ public class RepositorySearchTemplateQueryUnitTests extends RepositoryQueryUnitT
|
||||
}
|
||||
|
||||
private RepositorySearchTemplateQuery queryForMethod(ElasticsearchQueryMethod queryMethod) {
|
||||
return new RepositorySearchTemplateQuery(queryMethod, operations, QueryMethodEvaluationContextProvider.DEFAULT,
|
||||
return new RepositorySearchTemplateQuery(queryMethod, operations, ValueExpressionDelegate.create(),
|
||||
queryMethod.getAnnotatedSearchTemplateQuery().id());
|
||||
}
|
||||
// endregion
|
||||
|
@ -43,7 +43,7 @@ import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchC
|
||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
||||
import org.springframework.data.elasticsearch.repositories.custommethod.QueryParameter;
|
||||
import org.springframework.data.repository.Repository;
|
||||
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
|
||||
import org.springframework.data.repository.query.ValueExpressionDelegate;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
/**
|
||||
@ -407,7 +407,7 @@ public class RepositoryStringQueryUnitTests extends RepositoryStringQueryUnitTes
|
||||
|
||||
private RepositoryStringQuery queryForMethod(ElasticsearchQueryMethod queryMethod) {
|
||||
return new RepositoryStringQuery(queryMethod, operations, queryMethod.getAnnotatedQuery(),
|
||||
QueryMethodEvaluationContextProvider.DEFAULT);
|
||||
ValueExpressionDelegate.create());
|
||||
}
|
||||
|
||||
private interface SampleRepository extends Repository<Person, String> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user