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.
This commit is contained in:
Oliver Gierke
2011-09-27 11:48:20 +02:00
parent 3bdeb68617
commit f39de4c28e
2 changed files with 25 additions and 0 deletions

View File

@@ -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:

View File

@@ -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");