DATADOC-31 - Added 'Between' keyword support for query parser.
Updated test sample entity and repository accordingly.
This commit is contained in:
@@ -129,6 +129,8 @@ class MongoQueryCreator extends AbstractQueryCreator<DBObject, QueryBuilder> {
|
||||
return criteria.greaterThan(parameters.next());
|
||||
case LESS_THAN:
|
||||
return criteria.lessThan(parameters.next());
|
||||
case BETWEEN:
|
||||
return criteria.greaterThan(parameters.next()).lessThan(parameters.next());
|
||||
case IS_NOT_NULL:
|
||||
return criteria.notEquals(null);
|
||||
case IS_NULL:
|
||||
|
||||
@@ -32,11 +32,11 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
|
||||
|
||||
repository.deleteAll();
|
||||
|
||||
dave = new Person("Dave", "Matthews");
|
||||
carter = new Person("Carter", "Beauford");
|
||||
boyd = new Person("Boyd", "Tinsley");
|
||||
stefan = new Person("Stefan", "Lessard");
|
||||
leroi = new Person("Leroi", "Moore");
|
||||
dave = new Person("Dave", "Matthews", 42);
|
||||
carter = new Person("Carter", "Beauford", 49);
|
||||
boyd = new Person("Boyd", "Tinsley", 45);
|
||||
stefan = new Person("Stefan", "Lessard", 34);
|
||||
leroi = new Person("Leroi", "Moore", 41);
|
||||
|
||||
repository.save(Arrays.asList(dave, carter, boyd, stefan, leroi));
|
||||
}
|
||||
@@ -80,4 +80,12 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
|
||||
assertThat(page, hasItems(carter, stefan));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void findsPersonInAgeRangeCorrectly() throws Exception {
|
||||
|
||||
List<Person> result = repository.findByAgeBetween(40, 45);
|
||||
assertThat(result.size(), is(2));
|
||||
assertThat(result, hasItems(dave, leroi));
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,7 @@ public class Person {
|
||||
private String id;
|
||||
private String firstname;
|
||||
private String lastname;
|
||||
private Integer age;
|
||||
|
||||
|
||||
public Person() {
|
||||
@@ -38,9 +39,16 @@ public class Person {
|
||||
|
||||
public Person(String firstname, String lastname) {
|
||||
|
||||
this(firstname, lastname, null);
|
||||
}
|
||||
|
||||
|
||||
public Person(String firstname, String lastname, Integer age) {
|
||||
|
||||
this.id = ObjectId.get().toString();
|
||||
this.firstname = firstname;
|
||||
this.lastname = lastname;
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
|
||||
@@ -98,6 +106,24 @@ public class Person {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the age
|
||||
*/
|
||||
public Integer getAge() {
|
||||
|
||||
return age;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param age the age to set
|
||||
*/
|
||||
public void setAge(Integer age) {
|
||||
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
||||
@@ -56,4 +56,14 @@ public interface PersonRepository extends MongoRepository<Person, Long> {
|
||||
* @return
|
||||
*/
|
||||
Page<Person> findByLastnameLike(String lastname, Pageable pageable);
|
||||
|
||||
|
||||
/**
|
||||
* Returns all {@link Person}s with an age between the two given values.
|
||||
*
|
||||
* @param from
|
||||
* @param to
|
||||
* @return
|
||||
*/
|
||||
List<Person> findByAgeBetween(int from, int to);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user