Added Support for IN Query and Added more test cases
This commit is contained in:
@@ -94,7 +94,13 @@ class CriteriaQueryProcessor {
|
||||
query = rangeQuery(fieldName).from(ranges[0]).to(ranges[1]); break;
|
||||
case FUZZY:
|
||||
query = fuzzyQuery(fieldName, (String) value); break;
|
||||
|
||||
case IN:
|
||||
query = boolQuery();
|
||||
Iterable<Object> collection = (Iterable<Object>) value;
|
||||
for(Object item : collection){
|
||||
((BoolQueryBuilder) query).should(fieldQuery(fieldName, item));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return query;
|
||||
|
||||
@@ -340,13 +340,7 @@ public class Criteria {
|
||||
*/
|
||||
public Criteria in(Iterable<?> values) {
|
||||
Assert.notNull(values, "Collection of 'in' values must not be null");
|
||||
for (Object value : values) {
|
||||
if (value instanceof Collection) {
|
||||
in((Collection<?>) value);
|
||||
} else {
|
||||
is(value);
|
||||
}
|
||||
}
|
||||
criteria.add(new CriteriaEntry(OperationKey.IN, values));
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -430,7 +424,7 @@ public class Criteria {
|
||||
}
|
||||
|
||||
public enum OperationKey {
|
||||
EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, EXPRESSION, BETWEEN, FUZZY;
|
||||
EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, EXPRESSION, BETWEEN, FUZZY, IN;
|
||||
}
|
||||
|
||||
public static class CriteriaEntry {
|
||||
|
||||
Reference in New Issue
Block a user