Browse Source

DATADOC-286 - Added support for GreaterThanEqual and LessThanEqual.

Using those keywords provided by Spring Data Commons will cause $gte and $lte criterias to be created.
pull/1/head
Oliver Gierke 14 years ago
parent
commit
f39de4c28e
  1. 4
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/MongoQueryCreator.java
  2. 21
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryCreatorUnitTests.java

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

@ -148,8 +148,12 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Query> { @@ -148,8 +148,12 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Query> {
switch (type) {
case GREATER_THAN:
return criteria.gt(parameters.nextConverted());
case GREATER_THAN_EQUAL:
return criteria.gte(parameters.nextConverted());
case LESS_THAN:
return criteria.lt(parameters.nextConverted());
case LESS_THAN_EQUAL:
return criteria.lte(parameters.nextConverted());
case BETWEEN:
return criteria.gt(parameters.nextConverted()).lt(parameters.nextConverted());
case IS_NOT_NULL:

21
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/MongoQueryCreatorUnitTests.java

@ -130,6 +130,27 @@ public class MongoQueryCreatorUnitTests { @@ -130,6 +130,27 @@ public class MongoQueryCreatorUnitTests {
assertBindsDistanceToQuery(point, distance, query);
}
@Test
public void createsLessThanEqualQueryCorrectly() throws Exception {
PartTree tree = new PartTree("findByAgeLessThanEqual", Person.class);
MongoQueryCreator creator = new MongoQueryCreator(tree, getAccessor(converter, 18));
Query reference = query(where("age").lte(18));
assertThat(creator.createQuery().getQueryObject(), is (reference.getQueryObject()));
}
@Test
public void createsGreaterThanEqualQueryCorrectly() throws Exception {
PartTree tree = new PartTree("findByAgeGreaterThanEqual", Person.class);
MongoQueryCreator creator = new MongoQueryCreator(tree, getAccessor(converter, 18));
Query reference = query(where("age").gte(18));
assertThat(creator.createQuery().getQueryObject(), is (reference.getQueryObject()));
}
private void assertBindsDistanceToQuery(Point point, Distance distance, Query reference) throws Exception {
when(converter.convertToMongoType("Dave")).thenReturn("Dave");

Loading…
Cancel
Save