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:
Peter-Josef Meisch 2025-02-09 20:20:01 +01:00 committed by GitHub
parent cb77b328ae
commit ea62cf0abd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 130 additions and 140 deletions

View File

@ -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.DeleteQuery;
import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery; 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.ParametersParameterAccessor;
import org.springframework.data.repository.query.QueryMethod; 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.RepositoryQuery;
import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ResultProcessor;
import org.springframework.data.util.StreamUtils; import org.springframework.data.util.StreamUtils;
@ -50,11 +50,11 @@ public abstract class AbstractElasticsearchRepositoryQuery implements Repository
protected ElasticsearchQueryMethod queryMethod; protected ElasticsearchQueryMethod queryMethod;
protected final ElasticsearchOperations elasticsearchOperations; protected final ElasticsearchOperations elasticsearchOperations;
protected final ElasticsearchConverter elasticsearchConverter; protected final ElasticsearchConverter elasticsearchConverter;
protected final QueryMethodEvaluationContextProvider evaluationContextProvider; protected final ValueEvaluationContextProvider evaluationContextProvider;
public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod, public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod,
ElasticsearchOperations elasticsearchOperations, ElasticsearchOperations elasticsearchOperations,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueEvaluationContextProvider evaluationContextProvider) {
Assert.notNull(queryMethod, "queryMethod must not be null"); Assert.notNull(queryMethod, "queryMethod must not be null");
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null"); Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");

View File

@ -15,6 +15,7 @@
*/ */
package org.springframework.data.elasticsearch.repository.query; package org.springframework.data.elasticsearch.repository.query;
import org.springframework.data.expression.ValueEvaluationContextProvider;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -52,11 +53,11 @@ abstract class AbstractReactiveElasticsearchRepositoryQuery implements Repositor
protected final ReactiveElasticsearchQueryMethod queryMethod; protected final ReactiveElasticsearchQueryMethod queryMethod;
private final ReactiveElasticsearchOperations elasticsearchOperations; private final ReactiveElasticsearchOperations elasticsearchOperations;
protected final QueryMethodEvaluationContextProvider evaluationContextProvider; protected final ValueEvaluationContextProvider evaluationContextProvider;
AbstractReactiveElasticsearchRepositoryQuery(ReactiveElasticsearchQueryMethod queryMethod, AbstractReactiveElasticsearchRepositoryQuery(ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations elasticsearchOperations, ReactiveElasticsearchOperations elasticsearchOperations,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueEvaluationContextProvider evaluationContextProvider) {
Assert.notNull(queryMethod, "queryMethod must not be null"); Assert.notNull(queryMethod, "queryMethod must not be null");
Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null"); Assert.notNull(elasticsearchOperations, "elasticsearchOperations must not be null");

View File

@ -16,12 +16,7 @@
package org.springframework.data.elasticsearch.repository.query; package org.springframework.data.elasticsearch.repository.query;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty; import org.springframework.data.repository.query.ValueExpressionDelegate;
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;
/** /**
* ElasticsearchPartQuery * ElasticsearchPartQuery
@ -37,7 +32,8 @@ import org.springframework.data.repository.query.parser.PartTree;
*/ */
@Deprecated(forRemoval = true) @Deprecated(forRemoval = true)
public class ElasticsearchPartQuery extends RepositoryPartQuery { public class ElasticsearchPartQuery extends RepositoryPartQuery {
public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider) { public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations,
super(method, elasticsearchOperations, evaluationContextProvider); ValueExpressionDelegate valueExpressionDelegate) {
super(method, elasticsearchOperations, valueExpressionDelegate);
} }
} }

View File

@ -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.ScriptedField;
import org.springframework.data.elasticsearch.core.query.SourceFilter; import org.springframework.data.elasticsearch.core.query.SourceFilter;
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor; 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.mapping.context.MappingContext;
import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.ProjectionFactory;
import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.RepositoryMetadata;
@ -105,13 +106,6 @@ public class ElasticsearchQueryMethod extends QueryMethod {
verifyCountQueryTypes(); verifyCountQueryTypes();
} }
@SuppressWarnings("removal")
@Override
@Deprecated
protected Parameters<?, ?> createParameters(Method method, TypeInformation<?> domainType) {
return new ElasticsearchParameters(ParametersSource.of(method));
}
@Override @Override
protected Parameters<?, ?> createParameters(ParametersSource parametersSource) { protected Parameters<?, ?> createParameters(ParametersSource parametersSource) {
return new ElasticsearchParameters(parametersSource); return new ElasticsearchParameters(parametersSource);
@ -331,7 +325,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
@Nullable @Nullable
SourceFilter getSourceFilter(ElasticsearchParametersParameterAccessor parameterAccessor, SourceFilter getSourceFilter(ElasticsearchParametersParameterAccessor parameterAccessor,
ElasticsearchConverter converter, ElasticsearchConverter converter,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueEvaluationContextProvider evaluationContextProvider) {
if (sourceFilters == null || (sourceFilters.includes().length == 0 && sourceFilters.excludes().length == 0)) { if (sourceFilters == null || (sourceFilters.includes().length == 0 && sourceFilters.excludes().length == 0)) {
return null; return null;
@ -354,7 +348,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
} }
private String[] mapParameters(String[] source, ElasticsearchParametersParameterAccessor parameterAccessor, private String[] mapParameters(String[] source, ElasticsearchParametersParameterAccessor parameterAccessor,
ConversionService conversionService, QueryMethodEvaluationContextProvider evaluationContextProvider) { ConversionService conversionService, ValueEvaluationContextProvider evaluationContextProvider) {
List<String> fieldNames = new ArrayList<>(); List<String> fieldNames = new ArrayList<>();
@ -407,7 +401,7 @@ public class ElasticsearchQueryMethod extends QueryMethod {
void addSpecialMethodParameters(BaseQuery query, ElasticsearchParametersParameterAccessor parameterAccessor, void addSpecialMethodParameters(BaseQuery query, ElasticsearchParametersParameterAccessor parameterAccessor,
ElasticsearchConverter elasticsearchConverter, ElasticsearchConverter elasticsearchConverter,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueEvaluationContextProvider evaluationContextProvider) {
if (hasAnnotatedHighlight()) { if (hasAnnotatedHighlight()) {
var highlightQuery = getAnnotatedHighlightQuery(new HighlightConverter(parameterAccessor, var highlightQuery = getAnnotatedHighlightQuery(new HighlightConverter(parameterAccessor,

View File

@ -16,7 +16,7 @@
package org.springframework.data.elasticsearch.repository.query; package org.springframework.data.elasticsearch.repository.query;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.ValueExpressionDelegate;
/** /**
* ElasticsearchStringQuery * ElasticsearchStringQuery
@ -32,7 +32,7 @@ import org.springframework.data.repository.query.QueryMethodEvaluationContextPro
@Deprecated(since = "5.5", forRemoval = true) @Deprecated(since = "5.5", forRemoval = true)
public class ElasticsearchStringQuery extends RepositoryStringQuery { public class ElasticsearchStringQuery extends RepositoryStringQuery {
public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations, public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations,
String queryString, QueryMethodEvaluationContextProvider evaluationContextProvider) { String queryString, ValueExpressionDelegate valueExpressionDelegate) {
super(queryMethod, elasticsearchOperations, queryString, evaluationContextProvider); super(queryMethod, elasticsearchOperations, queryString, valueExpressionDelegate);
} }
} }

View File

@ -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.HighlightField;
import org.springframework.data.elasticsearch.core.query.highlight.HighlightParameters; import org.springframework.data.elasticsearch.core.query.highlight.HighlightParameters;
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor; 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.QueryMethod;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
@ -38,12 +38,12 @@ public class HighlightConverter {
private final ElasticsearchParametersParameterAccessor parameterAccessor; private final ElasticsearchParametersParameterAccessor parameterAccessor;
private final ConversionService conversionService; private final ConversionService conversionService;
private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final ValueEvaluationContextProvider evaluationContextProvider;
private final QueryMethod queryMethod; private final QueryMethod queryMethod;
HighlightConverter(ElasticsearchParametersParameterAccessor parameterAccessor, HighlightConverter(ElasticsearchParametersParameterAccessor parameterAccessor,
ConversionService conversionService, ConversionService conversionService,
QueryMethodEvaluationContextProvider evaluationContextProvider, ValueEvaluationContextProvider evaluationContextProvider,
QueryMethod queryMethod) { QueryMethod queryMethod) {
Assert.notNull(parameterAccessor, "parameterAccessor must not be null"); Assert.notNull(parameterAccessor, "parameterAccessor must not be null");

View File

@ -15,8 +15,6 @@
*/ */
package org.springframework.data.elasticsearch.repository.query; package org.springframework.data.elasticsearch.repository.query;
import static org.springframework.data.repository.util.ClassUtils.*;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.lang.reflect.Method; 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.repository.util.ReactiveWrapperConverters;
import org.springframework.data.util.Lazy; import org.springframework.data.util.Lazy;
import org.springframework.data.util.ReactiveWrappers; import org.springframework.data.util.ReactiveWrappers;
import org.springframework.data.util.ReflectionUtils;
import org.springframework.data.util.TypeInformation; import org.springframework.data.util.TypeInformation;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
@ -55,7 +54,7 @@ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod {
super(method, metadata, factory, mappingContext); super(method, metadata, factory, mappingContext);
if (hasParameterOfType(method, Pageable.class)) { if (ReflectionUtils.hasParameterOfType(method, Pageable.class)) {
TypeInformation<?> returnType = TypeInformation.fromReturnTypeOf(method); TypeInformation<?> returnType = TypeInformation.fromReturnTypeOf(method);
boolean multiWrapper = ReactiveWrappers.isMultiValueType(returnType.getType()); boolean multiWrapper = ReactiveWrappers.isMultiValueType(returnType.getType());
@ -75,7 +74,7 @@ public class ReactiveElasticsearchQueryMethod extends ElasticsearchQueryMethod {
method)); 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. " throw new IllegalStateException(String.format("Method must not have Pageable *and* Sort parameter. "
+ "Use sorting capabilities on Pageable instead! Offending method: %s", method)); + "Use sorting capabilities on Pageable instead! Offending method: %s", method));
} }

View File

@ -16,7 +16,7 @@
package org.springframework.data.elasticsearch.repository.query; package org.springframework.data.elasticsearch.repository.query;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.ValueExpressionDelegate;
/** /**
* @author Christoph Strobl * @author Christoph Strobl
@ -29,12 +29,12 @@ import org.springframework.data.repository.query.QueryMethodEvaluationContextPro
public class ReactiveElasticsearchStringQuery extends ReactiveRepositoryStringQuery { public class ReactiveElasticsearchStringQuery extends ReactiveRepositoryStringQuery {
public ReactiveElasticsearchStringQuery(ReactiveElasticsearchQueryMethod queryMethod, public ReactiveElasticsearchStringQuery(ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) { ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
super(queryMethod, operations, evaluationContextProvider); super(queryMethod, operations, valueExpressionDelegate);
} }
public ReactiveElasticsearchStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod, public ReactiveElasticsearchStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) { ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
super(query, queryMethod, operations, evaluationContextProvider); super(query, queryMethod, operations, valueExpressionDelegate);
} }
} }

View File

@ -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.BaseQuery;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery; import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator; 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.ResultProcessor;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import org.springframework.data.repository.query.parser.PartTree; import org.springframework.data.repository.query.parser.PartTree;
/** /**
@ -35,8 +35,9 @@ public class ReactivePartTreeElasticsearchQuery extends AbstractReactiveElastics
public ReactivePartTreeElasticsearchQuery(ReactiveElasticsearchQueryMethod queryMethod, public ReactivePartTreeElasticsearchQuery(ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations elasticsearchOperations, ReactiveElasticsearchOperations elasticsearchOperations,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueExpressionDelegate valueExpressionDelegate) {
super(queryMethod, elasticsearchOperations, evaluationContextProvider); super(queryMethod, elasticsearchOperations,
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
ResultProcessor processor = queryMethod.getResultProcessor(); ResultProcessor processor = queryMethod.getResultProcessor();
this.tree = new PartTree(queryMethod.getName(), processor.getReturnedType().getDomainType()); this.tree = new PartTree(queryMethod.getName(), processor.getReturnedType().getDomainType());

View File

@ -18,11 +18,10 @@ package org.springframework.data.elasticsearch.repository.query;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations;
import org.springframework.data.elasticsearch.core.query.BaseQuery; import org.springframework.data.elasticsearch.core.query.BaseQuery;
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery; 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; import org.springframework.util.Assert;
/** /**
@ -37,9 +36,11 @@ public class ReactiveRepositorySearchTemplateQuery extends AbstractReactiveElast
private Map<String, Object> params; private Map<String, Object> params;
public ReactiveRepositorySearchTemplateQuery(ReactiveElasticsearchQueryMethod queryMethod, public ReactiveRepositorySearchTemplateQuery(ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider, ReactiveElasticsearchOperations elasticsearchOperations,
ValueExpressionDelegate valueExpressionDelegate,
String id) { String id) {
super(queryMethod, elasticsearchOperations, evaluationContextProvider); super(queryMethod, elasticsearchOperations,
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
Assert.hasLength(id, "id must not be null or empty"); Assert.hasLength(id, "id must not be null or empty");
this.id = id; this.id = id;
} }

View File

@ -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.core.query.StringQuery;
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor; import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
* Was originally named ReactiveElasticsearchStringQuery. * Was originally named ReactiveElasticsearchStringQuery.
*
* @author Christoph Strobl * @author Christoph Strobl
* @author Taylor Ono * @author Taylor Ono
* @author Haibo Liu * @author Haibo Liu
@ -33,23 +35,20 @@ import org.springframework.util.Assert;
public class ReactiveRepositoryStringQuery extends AbstractReactiveElasticsearchRepositoryQuery { public class ReactiveRepositoryStringQuery extends AbstractReactiveElasticsearchRepositoryQuery {
private final String query; private final String query;
private final QueryMethodEvaluationContextProvider evaluationContextProvider;
public ReactiveRepositoryStringQuery(ReactiveElasticsearchQueryMethod queryMethod, 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, public ReactiveRepositoryStringQuery(String query, ReactiveElasticsearchQueryMethod queryMethod,
ReactiveElasticsearchOperations operations, QueryMethodEvaluationContextProvider evaluationContextProvider) { ReactiveElasticsearchOperations operations, ValueExpressionDelegate valueExpressionDelegate) {
super(queryMethod, operations, evaluationContextProvider); super(queryMethod, operations, valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
Assert.notNull(query, "query must not be null"); Assert.notNull(query, "query must not be null");
Assert.notNull(evaluationContextProvider, "evaluationContextProvider must not be null");
this.query = query; this.query = query;
this.evaluationContextProvider = evaluationContextProvider;
} }
@Override @Override

View File

@ -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.core.query.BaseQuery;
import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator; import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
import org.springframework.data.mapping.context.MappingContext; 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; import org.springframework.data.repository.query.parser.PartTree;
/** /**
* A repository query that is built from the the method name in the repository definition. * A repository query that is built from the the method name in the repository definition. Was originally named
* Was originally named ElasticsearchPartQuery. * ElasticsearchPartQuery.
* *
* @author Rizwan Idrees * @author Rizwan Idrees
* @author Mohsin Husen * @author Mohsin Husen
@ -41,8 +41,9 @@ public class RepositoryPartQuery extends AbstractElasticsearchRepositoryQuery {
private final MappingContext<?, ElasticsearchPersistentProperty> mappingContext; private final MappingContext<?, ElasticsearchPersistentProperty> mappingContext;
public RepositoryPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations, public RepositoryPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueExpressionDelegate valueExpressionDelegate) {
super(method, elasticsearchOperations, evaluationContextProvider); super(method, elasticsearchOperations,
valueExpressionDelegate.createValueContextProvider(method.getParameters()));
this.tree = new PartTree(queryMethod.getName(), queryMethod.getResultProcessor().getReturnedType().getDomainType()); this.tree = new PartTree(queryMethod.getName(), queryMethod.getResultProcessor().getReturnedType().getDomainType());
this.mappingContext = elasticsearchConverter.getMappingContext(); this.mappingContext = elasticsearchConverter.getMappingContext();
} }

View File

@ -21,7 +21,7 @@ import java.util.Map;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.query.BaseQuery; import org.springframework.data.elasticsearch.core.query.BaseQuery;
import org.springframework.data.elasticsearch.core.query.SearchTemplateQuery; 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; import org.springframework.util.Assert;
/** /**
@ -36,9 +36,10 @@ public class RepositorySearchTemplateQuery extends AbstractElasticsearchReposito
private Map<String, Object> params; private Map<String, Object> params;
public RepositorySearchTemplateQuery(ElasticsearchQueryMethod queryMethod, public RepositorySearchTemplateQuery(ElasticsearchQueryMethod queryMethod,
ElasticsearchOperations elasticsearchOperations, QueryMethodEvaluationContextProvider evaluationContextProvider, ElasticsearchOperations elasticsearchOperations, ValueExpressionDelegate valueExpressionDelegate,
String id) { String id) {
super(queryMethod, elasticsearchOperations, evaluationContextProvider); super(queryMethod, elasticsearchOperations,
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
Assert.hasLength(id, "id must not be null or empty"); Assert.hasLength(id, "id must not be null or empty");
this.id = id; this.id = id;
} }

View File

@ -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.BaseQuery;
import org.springframework.data.elasticsearch.core.query.StringQuery; import org.springframework.data.elasticsearch.core.query.StringQuery;
import org.springframework.data.elasticsearch.repository.support.QueryStringProcessor; 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; import org.springframework.util.Assert;
/** /**
* A repository query that is defined by a String containing the query. * A repository query that is defined by a String containing the query. Was originally named ElasticsearchStringQuery.
* Was originally named ElasticsearchStringQuery.
* *
* @author Rizwan Idrees * @author Rizwan Idrees
* @author Mohsin Husen * @author Mohsin Husen
@ -23,11 +22,11 @@ public class RepositoryStringQuery extends AbstractElasticsearchRepositoryQuery
private final String queryString; private final String queryString;
public RepositoryStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations, public RepositoryStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations,
String queryString, QueryMethodEvaluationContextProvider evaluationContextProvider) { String queryString, ValueExpressionDelegate valueExpressionDelegate) {
super(queryMethod, elasticsearchOperations, evaluationContextProvider); super(queryMethod, elasticsearchOperations,
valueExpressionDelegate.createValueContextProvider(queryMethod.getParameters()));
Assert.notNull(queryString, "Query cannot be empty"); Assert.notNull(queryString, "Query cannot be empty");
Assert.notNull(evaluationContextProvider, "ExpressionEvaluationContextProvider must not be null");
this.queryString = queryString; this.queryString = queryString;
} }

View File

@ -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.QueryByExampleExecutor;
import org.springframework.data.repository.query.QueryLookupStrategy; import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key; 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.RepositoryQuery;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -97,16 +97,16 @@ public class ElasticsearchRepositoryFactory extends RepositoryFactorySupport {
@Override @Override
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key, protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueExpressionDelegate valueExpressionDelegate) {
return Optional.of(new ElasticsearchQueryLookupStrategy(evaluationContextProvider)); return Optional.of(new ElasticsearchQueryLookupStrategy(valueExpressionDelegate));
} }
private class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy { private class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final ValueExpressionDelegate valueExpressionDelegate;
ElasticsearchQueryLookupStrategy(QueryMethodEvaluationContextProvider evaluationContextProvider) { ElasticsearchQueryLookupStrategy(ValueExpressionDelegate valueExpressionDelegate) {
this.evaluationContextProvider = evaluationContextProvider; this.valueExpressionDelegate = valueExpressionDelegate;
} }
/* /*
@ -124,16 +124,16 @@ public class ElasticsearchRepositoryFactory extends RepositoryFactorySupport {
if (namedQueries.hasQuery(namedQueryName)) { if (namedQueries.hasQuery(namedQueryName)) {
String namedQuery = namedQueries.getQuery(namedQueryName); String namedQuery = namedQueries.getQuery(namedQueryName);
return new RepositoryStringQuery(queryMethod, elasticsearchOperations, namedQuery, return new RepositoryStringQuery(queryMethod, elasticsearchOperations, namedQuery,
evaluationContextProvider); valueExpressionDelegate);
} else if (queryMethod.hasAnnotatedQuery()) { } else if (queryMethod.hasAnnotatedQuery()) {
return new RepositoryStringQuery(queryMethod, elasticsearchOperations, queryMethod.getAnnotatedQuery(), return new RepositoryStringQuery(queryMethod, elasticsearchOperations, queryMethod.getAnnotatedQuery(),
evaluationContextProvider); valueExpressionDelegate);
} else if (queryMethod.hasAnnotatedSearchTemplateQuery()) { } else if (queryMethod.hasAnnotatedSearchTemplateQuery()) {
var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery(); var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery();
return new RepositorySearchTemplateQuery(queryMethod, elasticsearchOperations, evaluationContextProvider, return new RepositorySearchTemplateQuery(queryMethod, elasticsearchOperations, valueExpressionDelegate,
searchTemplateQuery.id()); searchTemplateQuery.id());
} }
return new RepositoryPartQuery(queryMethod, elasticsearchOperations, evaluationContextProvider); return new RepositoryPartQuery(queryMethod, elasticsearchOperations, valueExpressionDelegate);
} }
} }

View File

@ -18,6 +18,7 @@ package org.springframework.data.elasticsearch.repository.support;
import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.ConversionService;
import org.springframework.data.elasticsearch.repository.query.ElasticsearchParametersParameterAccessor; import org.springframework.data.elasticsearch.repository.query.ElasticsearchParametersParameterAccessor;
import org.springframework.data.elasticsearch.repository.support.spel.QueryStringSpELEvaluator; 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.QueryMethod;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -34,10 +35,10 @@ public class QueryStringProcessor {
private final String query; private final String query;
private final QueryMethod queryMethod; private final QueryMethod queryMethod;
private final ConversionService conversionService; private final ConversionService conversionService;
private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final ValueEvaluationContextProvider evaluationContextProvider;
public QueryStringProcessor(String query, QueryMethod queryMethod, ConversionService conversionService, public QueryStringProcessor(String query, QueryMethod queryMethod, ConversionService conversionService,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueEvaluationContextProvider evaluationContextProvider) {
Assert.notNull(query, "query must not be null"); Assert.notNull(query, "query must not be null");
Assert.notNull(queryMethod, "queryMethod must not be null"); Assert.notNull(queryMethod, "queryMethod must not be null");

View File

@ -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.ReactivePartTreeElasticsearchQuery;
import org.springframework.data.elasticsearch.repository.query.ReactiveRepositorySearchTemplateQuery; import org.springframework.data.elasticsearch.repository.query.ReactiveRepositorySearchTemplateQuery;
import org.springframework.data.elasticsearch.repository.query.ReactiveRepositoryStringQuery; 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.elasticsearch.repository.support.querybyexample.ReactiveQueryByExampleElasticsearchExecutor;
import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mapping.context.MappingContext;
import org.springframework.data.projection.ProjectionFactory; 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.core.support.RepositoryFragment;
import org.springframework.data.repository.query.QueryLookupStrategy; import org.springframework.data.repository.query.QueryLookupStrategy;
import org.springframework.data.repository.query.QueryLookupStrategy.Key; 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.ReactiveQueryByExampleExecutor;
import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.data.repository.query.RepositoryQuery;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -94,14 +93,10 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
return getTargetRepositoryViaReflection(information, entityInformation, operations); 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 @Override
protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key, protected Optional<QueryLookupStrategy> getQueryLookupStrategy(@Nullable Key key,
QueryMethodEvaluationContextProvider evaluationContextProvider) { ValueExpressionDelegate valueExpressionDelegate) {
return Optional.of(new ElasticsearchQueryLookupStrategy(operations, evaluationContextProvider, mappingContext)); return Optional.of(new ElasticsearchQueryLookupStrategy(operations, valueExpressionDelegate, mappingContext));
} }
/* /*
@ -132,19 +127,19 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
private static class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy { private static class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
private final ReactiveElasticsearchOperations operations; private final ReactiveElasticsearchOperations operations;
private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final ValueExpressionDelegate valueExpressionDelegate;
private final MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext; private final MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext;
public ElasticsearchQueryLookupStrategy(ReactiveElasticsearchOperations operations, public ElasticsearchQueryLookupStrategy(ReactiveElasticsearchOperations operations,
QueryMethodEvaluationContextProvider evaluationContextProvider, ValueExpressionDelegate valueExpressionDelegate,
MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) { MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) {
Assert.notNull(operations, "operations must not be null"); 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"); Assert.notNull(mappingContext, "mappingContext must not be null");
this.operations = operations; this.operations = operations;
this.evaluationContextProvider = evaluationContextProvider; this.valueExpressionDelegate = valueExpressionDelegate;
this.mappingContext = mappingContext; this.mappingContext = mappingContext;
} }
@ -164,15 +159,15 @@ public class ReactiveElasticsearchRepositoryFactory extends ReactiveRepositoryFa
String namedQuery = namedQueries.getQuery(namedQueryName); String namedQuery = namedQueries.getQuery(namedQueryName);
return new ReactiveRepositoryStringQuery(namedQuery, queryMethod, operations, return new ReactiveRepositoryStringQuery(namedQuery, queryMethod, operations,
evaluationContextProvider); valueExpressionDelegate);
} else if (queryMethod.hasAnnotatedQuery()) { } else if (queryMethod.hasAnnotatedQuery()) {
return new ReactiveRepositoryStringQuery(queryMethod, operations, evaluationContextProvider); return new ReactiveRepositoryStringQuery(queryMethod, operations, valueExpressionDelegate);
} else if (queryMethod.hasAnnotatedSearchTemplateQuery()) { } else if (queryMethod.hasAnnotatedSearchTemplateQuery()) {
var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery(); var searchTemplateQuery = queryMethod.getAnnotatedSearchTemplateQuery();
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, evaluationContextProvider, return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, valueExpressionDelegate,
searchTemplateQuery.id()); searchTemplateQuery.id());
} else { } else {
return new ReactivePartTreeElasticsearchQuery(queryMethod, operations, evaluationContextProvider); return new ReactivePartTreeElasticsearchQuery(queryMethod, operations, valueExpressionDelegate);
} }
} }
} }

View File

@ -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.ElasticsearchCollectionValueToStringConverter;
import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchQueryValueConversionService; import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchQueryValueConversionService;
import org.springframework.data.elasticsearch.repository.support.value.ElasticsearchStringValueToStringConverter; 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.QueryMethod;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.expression.EvaluationContext; import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression; import org.springframework.expression.Expression;
import org.springframework.expression.ParserContext; import org.springframework.expression.ParserContext;
@ -53,11 +53,11 @@ public class QueryStringSpELEvaluator {
private final String queryString; private final String queryString;
private final ElasticsearchParametersParameterAccessor parameterAccessor; private final ElasticsearchParametersParameterAccessor parameterAccessor;
private final QueryMethod queryMethod; private final QueryMethod queryMethod;
private final QueryMethodEvaluationContextProvider evaluationContextProvider; private final ValueEvaluationContextProvider evaluationContextProvider;
private final TypeConverter elasticsearchSpELTypeConverter; private final TypeConverter elasticsearchSpELTypeConverter;
public QueryStringSpELEvaluator(String queryString, ElasticsearchParametersParameterAccessor parameterAccessor, public QueryStringSpELEvaluator(String queryString, ElasticsearchParametersParameterAccessor parameterAccessor,
QueryMethod queryMethod, QueryMethodEvaluationContextProvider evaluationContextProvider, QueryMethod queryMethod, ValueEvaluationContextProvider evaluationContextProvider,
ConversionService conversionService) { ConversionService conversionService) {
Assert.notNull(queryString, "queryString must not be null"); Assert.notNull(queryString, "queryString must not be null");
@ -83,8 +83,8 @@ public class QueryStringSpELEvaluator {
Expression expr = getQueryExpression(queryString); Expression expr = getQueryExpression(queryString);
if (expr != null) { if (expr != null) {
EvaluationContext context = evaluationContextProvider.getEvaluationContext(parameterAccessor.getParameters(), EvaluationContext context = evaluationContextProvider.getEvaluationContext(parameterAccessor.getValues())
parameterAccessor.getValues()); .getRequiredEvaluationContext();
if (context instanceof StandardEvaluationContext standardEvaluationContext) { if (context instanceof StandardEvaluationContext standardEvaluationContext) {
standardEvaluationContext.setTypeConverter(elasticsearchSpELTypeConverter); standardEvaluationContext.setTypeConverter(elasticsearchSpELTypeConverter);

View File

@ -36,6 +36,7 @@ import org.springframework.data.elasticsearch.repository.query.RepositoryPartQue
import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata; import org.springframework.data.repository.core.support.DefaultRepositoryMetadata;
import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
/** /**
@ -647,7 +648,7 @@ public abstract class RepositoryPartQueryIntegrationTests {
new DefaultRepositoryMetadata(SampleRepository.class), new SpelAwareProxyProjectionFactory(), new DefaultRepositoryMetadata(SampleRepository.class), new SpelAwareProxyProjectionFactory(),
operations.getElasticsearchConverter().getMappingContext()); operations.getElasticsearchConverter().getMappingContext());
RepositoryPartQuery partQuery = new RepositoryPartQuery(queryMethod, operations, RepositoryPartQuery partQuery = new RepositoryPartQuery(queryMethod, operations,
QueryMethodEvaluationContextProvider.DEFAULT); ValueExpressionDelegate.create());
Query query = partQuery.createQuery(parameters); Query query = partQuery.createQuery(parameters);
return buildQueryString(query, Book.class); return buildQueryString(query, Book.class);
} }

View File

@ -28,7 +28,7 @@ import org.springframework.data.elasticsearch.annotations.SearchTemplateQuery;
import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 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; import org.springframework.lang.Nullable;
public class ReactiveRepositorySearchTemplateQueryUnitTests extends ReactiveRepositoryQueryUnitTestsBase { public class ReactiveRepositorySearchTemplateQueryUnitTests extends ReactiveRepositoryQueryUnitTestsBase {
@ -71,7 +71,7 @@ public class ReactiveRepositorySearchTemplateQueryUnitTests extends ReactiveRepo
} }
private ReactiveRepositorySearchTemplateQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) { private ReactiveRepositorySearchTemplateQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) {
return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, QueryMethodEvaluationContextProvider.DEFAULT, return new ReactiveRepositorySearchTemplateQuery(queryMethod, operations, ValueExpressionDelegate.create(),
queryMethod.getAnnotatedSearchTemplateQuery().id()); queryMethod.getAnnotatedSearchTemplateQuery().id());
} }
// endregion // endregion

View File

@ -17,6 +17,7 @@ package org.springframework.data.elasticsearch.repository.query;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import org.springframework.data.repository.query.ValueExpressionDelegate;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -419,7 +420,7 @@ public class ReactiveRepositoryStringQueryUnitTests extends ReactiveRepositoryQu
private ReactiveRepositoryStringQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) { private ReactiveRepositoryStringQuery queryForMethod(ReactiveElasticsearchQueryMethod queryMethod) {
return new ReactiveRepositoryStringQuery(queryMethod, operations, return new ReactiveRepositoryStringQuery(queryMethod, operations,
QueryMethodEvaluationContextProvider.DEFAULT); ValueExpressionDelegate.create());
} }
private interface SampleRepository extends Repository<Person, String> { private interface SampleRepository extends Repository<Person, String> {

View File

@ -28,7 +28,7 @@ import org.springframework.data.elasticsearch.annotations.SearchTemplateQuery;
import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.Query; import org.springframework.data.elasticsearch.core.query.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; 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; import org.springframework.lang.Nullable;
public class RepositorySearchTemplateQueryUnitTests extends RepositoryQueryUnitTestsBase { public class RepositorySearchTemplateQueryUnitTests extends RepositoryQueryUnitTestsBase {
@ -71,7 +71,7 @@ public class RepositorySearchTemplateQueryUnitTests extends RepositoryQueryUnitT
} }
private RepositorySearchTemplateQuery queryForMethod(ElasticsearchQueryMethod queryMethod) { private RepositorySearchTemplateQuery queryForMethod(ElasticsearchQueryMethod queryMethod) {
return new RepositorySearchTemplateQuery(queryMethod, operations, QueryMethodEvaluationContextProvider.DEFAULT, return new RepositorySearchTemplateQuery(queryMethod, operations, ValueExpressionDelegate.create(),
queryMethod.getAnnotatedSearchTemplateQuery().id()); queryMethod.getAnnotatedSearchTemplateQuery().id());
} }
// endregion // endregion

View File

@ -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.core.query.StringQuery;
import org.springframework.data.elasticsearch.repositories.custommethod.QueryParameter; import org.springframework.data.elasticsearch.repositories.custommethod.QueryParameter;
import org.springframework.data.repository.Repository; 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; import org.springframework.lang.Nullable;
/** /**
@ -407,7 +407,7 @@ public class RepositoryStringQueryUnitTests extends RepositoryStringQueryUnitTes
private RepositoryStringQuery queryForMethod(ElasticsearchQueryMethod queryMethod) { private RepositoryStringQuery queryForMethod(ElasticsearchQueryMethod queryMethod) {
return new RepositoryStringQuery(queryMethod, operations, queryMethod.getAnnotatedQuery(), return new RepositoryStringQuery(queryMethod, operations, queryMethod.getAnnotatedQuery(),
QueryMethodEvaluationContextProvider.DEFAULT); ValueExpressionDelegate.create());
} }
private interface SampleRepository extends Repository<Person, String> { private interface SampleRepository extends Repository<Person, String> {