DATAMONGO-427 - Added support for Before and After keywords for query creation.
The query creator now supports methods as follows: List<User> findByCreatedAtBefore(Date date);
This commit is contained in:
@@ -178,10 +178,12 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Criteria> {
|
||||
PotentiallyConvertingIterator parameters) {
|
||||
|
||||
switch (type) {
|
||||
case AFTER:
|
||||
case GREATER_THAN:
|
||||
return criteria.gt(parameters.nextConverted(property));
|
||||
case GREATER_THAN_EQUAL:
|
||||
return criteria.gte(parameters.nextConverted(property));
|
||||
case BEFORE:
|
||||
case LESS_THAN:
|
||||
return criteria.lt(parameters.nextConverted(property));
|
||||
case LESS_THAN_EQUAL:
|
||||
|
||||
@@ -436,10 +436,44 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
|
||||
* @see DATAMONGO-425
|
||||
*/
|
||||
@Test
|
||||
public void bindsDateParameterForDerivedQueryCorrectly() {
|
||||
public void bindsDateParameterForLessThanPredicateCorrectly() {
|
||||
|
||||
List<Person> result = repository.findByCreatedAtLessThan(boyd.createdAt);
|
||||
assertThat(result.isEmpty(), is(false));
|
||||
assertThat(result.size(), is(3));
|
||||
assertThat(result, hasItems(dave, oliver, carter));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-425
|
||||
*/
|
||||
@Test
|
||||
public void bindsDateParameterForGreaterThanPredicateCorrectly() {
|
||||
|
||||
List<Person> result = repository.findByCreatedAtGreaterThan(carter.createdAt);
|
||||
assertThat(result.size(), is(4));
|
||||
assertThat(result, hasItems(boyd, stefan, leroi, alicia));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-427
|
||||
*/
|
||||
@Test
|
||||
public void bindsDateParameterToBeforePredicateCorrectly() {
|
||||
|
||||
List<Person> result = repository.findByCreatedAtBefore(boyd.createdAt);
|
||||
assertThat(result.size(), is(3));
|
||||
assertThat(result, hasItems(dave, oliver, carter));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-427
|
||||
*/
|
||||
@Test
|
||||
public void bindsDateParameterForAfterPredicateCorrectly() {
|
||||
|
||||
List<Person> result = repository.findByCreatedAtAfter(carter.createdAt);
|
||||
assertThat(result.size(), is(4));
|
||||
assertThat(result, hasItems(boyd, stefan, leroi, alicia));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -160,9 +160,25 @@ public interface PersonRepository extends MongoRepository<Person, String>, Query
|
||||
*/
|
||||
List<Person> findByCreatedAtLessThan(Date date);
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-425
|
||||
*/
|
||||
List<Person> findByCreatedAtGreaterThan(Date date);
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-425
|
||||
*/
|
||||
@Query("{ 'createdAt' : { '$lt' : ?0 }}")
|
||||
List<Person> findByCreatedAtLessThanManually(Date date);
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-427
|
||||
*/
|
||||
List<Person> findByCreatedAtBefore(Date date);
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-427
|
||||
*/
|
||||
List<Person> findByCreatedAtAfter(Date date);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user