Browse Source

DATAMONGO-2072 - Polishing.

Slightly simplify method signature. Update docs.

Original pull request: #645.
pull/651/head
Mark Paluch 7 years ago
parent
commit
dc38369f18
  1. 12
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java
  2. 1
      src/main/asciidoc/new-features.adoc

12
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java

@ -25,6 +25,7 @@ import java.util.regex.Pattern;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Range; import org.springframework.data.domain.Range;
import org.springframework.data.domain.Range.Bound; import org.springframework.data.domain.Range.Bound;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
@ -187,7 +188,7 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Criteria> {
case LESS_THAN_EQUAL: case LESS_THAN_EQUAL:
return criteria.lte(parameters.next()); return criteria.lte(parameters.next());
case BETWEEN: case BETWEEN:
return computeBetweenPart(criteria, parameters.next(), parameters); return computeBetweenPart(criteria, parameters);
case IS_NOT_NULL: case IS_NOT_NULL:
return criteria.ne(null); return criteria.ne(null);
case IS_NULL: case IS_NULL:
@ -420,19 +421,20 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Criteria> {
/** /**
* Compute a {@link Type#BETWEEN} typed {@link Part} using {@link Criteria#gt(Object) $gt}, * Compute a {@link Type#BETWEEN} typed {@link Part} using {@link Criteria#gt(Object) $gt},
* {@link Criteria#gte(Object) $gte}, {@link Criteria#lt(Object) $lt} and {@link Criteria#lte(Object) $lte}. <br /> * {@link Criteria#gte(Object) $gte}, {@link Criteria#lt(Object) $lt} and {@link Criteria#lte(Object) $lte}.
* In case the given {@literal value} is actually a {@link Range} the lower and upper bounds of the {@link Range} are * <p/>
* In case the first {@literal value} is actually a {@link Range} the lower and upper bounds of the {@link Range} are
* used according to their {@link Bound#isInclusive() inclusion} definition. Otherwise the {@literal value} is used * used according to their {@link Bound#isInclusive() inclusion} definition. Otherwise the {@literal value} is used
* for {@literal $gt} and {@link Iterator#next() parameters.next()} as {@literal $lt}. * for {@literal $gt} and {@link Iterator#next() parameters.next()} as {@literal $lt}.
* *
* @param criteria must not be {@literal null}. * @param criteria must not be {@literal null}.
* @param value current value. Must not be {@literal null}.
* @param parameters must not be {@literal null}. * @param parameters must not be {@literal null}.
* @return * @return
* @since 2.2 * @since 2.2
*/ */
private static Criteria computeBetweenPart(Criteria criteria, Object value, Iterator<Object> parameters) { private static Criteria computeBetweenPart(Criteria criteria, Iterator<Object> parameters) {
Object value = parameters.next();
if (!(value instanceof Range)) { if (!(value instanceof Range)) {
return criteria.gt(value).lt(parameters.next()); return criteria.gt(value).lt(parameters.next());
} }

1
src/main/asciidoc/new-features.adoc

@ -9,6 +9,7 @@
* Extended SpEL aggregation support for MongoDB 3.4 and MongoDB 4.0 operators (see <<mongo.aggregation.projection.expressions>>). * Extended SpEL aggregation support for MongoDB 3.4 and MongoDB 4.0 operators (see <<mongo.aggregation.projection.expressions>>).
* Template API delete by entity considers the version property in delete queries. * Template API delete by entity considers the version property in delete queries.
* Repository deletes now throw `OptimisticLockingFailureException` when a versioned entity cannot be deleted. * Repository deletes now throw `OptimisticLockingFailureException` when a versioned entity cannot be deleted.
* Support `Range<T>` in repository between queries.
[[new-features.2-1-0]] [[new-features.2-1-0]]
== What's New in Spring Data MongoDB 2.1 == What's New in Spring Data MongoDB 2.1

Loading…
Cancel
Save