diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpressionCriteria.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpressionCriteria.java index de748adc1..b99c4358f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpressionCriteria.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/AggregationExpressionCriteria.java @@ -18,7 +18,6 @@ package org.springframework.data.mongodb.core.aggregation; import org.bson.Document; import org.springframework.data.mongodb.core.aggregation.EvaluationOperators.Expr; import org.springframework.data.mongodb.core.query.CriteriaDefinition; -import org.springframework.lang.Nullable; /** * A {@link CriteriaDefinition criteria} to use {@code $expr} within a @@ -52,7 +51,6 @@ public class AggregationExpressionCriteria implements CriteriaDefinition { return new Document(getKey(), expression); } - @Nullable @Override public String getKey() { return "$expr"; diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java index 42f9d5e4b..c80efc6c2 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java @@ -41,7 +41,6 @@ import org.springframework.data.mapping.PropertyReferenceException; import org.springframework.data.mapping.context.InvalidPersistentPropertyPath; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mongodb.MongoExpression; -import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.AggregationExpression; import org.springframework.data.mongodb.core.aggregation.RelaxedTypeBasedAggregationOperationContext; import org.springframework.data.mongodb.core.convert.MappingMongoConverter.NestedDocument; @@ -563,10 +562,12 @@ public class QueryMapper { return exampleMapper.getMappedExample((Example>) source, entity); } - if(source instanceof MongoExpression exr) { - if(source instanceof AggregationExpression age) { - return age.toDocument(new RelaxedTypeBasedAggregationOperationContext(entity.getType(), this.mappingContext, this)); - } + if (source instanceof AggregationExpression age) { + return age + .toDocument(new RelaxedTypeBasedAggregationOperationContext(entity.getType(), this.mappingContext, this)); + } + + if (source instanceof MongoExpression exr) { return exr.toDocument(); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Criteria.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Criteria.java index 3ae582811..a3c7538de 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Criteria.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Criteria.java @@ -158,14 +158,14 @@ public class Criteria implements CriteriaDefinition { *
* expr(() -> Document.parse("{ $gt : [ '$spent', '$budget'] }")))
*
- *
+ *
* or an {@link org.springframework.data.mongodb.core.aggregation.AggregationExpression} which will be subject to
* context (domain type) specific field mapping.
*
*
* expr(valueOf("amountSpent").greaterThan("budget"))
*
- *
+ *
* @param expression must not be {@literal null}.
* @return new instance of {@link Criteria}.
* @since 4.1
@@ -211,8 +211,7 @@ public class Criteria implements CriteriaDefinition {
/**
* Creates a criterion using {@literal null} equality comparison which matches documents that either contain the item
- * field whose value is {@literal null} or that do not contain the item field.
- * - * NOTE: The unit of measure for distance may depends on the used coordinate representation - * (legacy vs. geoJson) as well as the target operation. + * NOTE: The unit of measure for distance may depends on the used coordinate representation (legacy + * vs. geoJson) as well as the target operation. * * @param maxDistance radians or meters * @return this. @@ -682,8 +680,8 @@ public class Criteria implements CriteriaDefinition { * Creates a geospatial criterion using a {@literal $minDistance} operation, for use with {@literal $near} or * {@literal $nearSphere}. *
- * NOTE: The unit of measure for distance may depends on the used coordinate representation - * (legacy vs. geoJson) as well as the target operation. + * NOTE: The unit of measure for distance may depends on the used coordinate representation (legacy + * vs. geoJson) as well as the target operation. * * @param minDistance radians or meters * @return this.