Exact Match Query
By default, the whereXXX
methods in query
uses a case-insensitive match.
To perform a case-sensitive match you should use the exact
parameter.
Syntax
IDocumentQuery<T> whereEquals(String fieldName, Object value, boolean exact);
IDocumentQuery<T> whereNotEquals(String fieldName, Object value, boolean exact);
// ... rest of where methods
Parameters | ||
---|---|---|
fieldName | String | Object field to use |
value | Object | Predicate value |
exact | boolean | Indicates if predicate should be matched in case-sensitive manner |
Example I - Query With Exact Match
// load all entities from 'Employees' collection
// where firstName equals 'Robert' (case sensitive match)
List<Employee> employees = session.query(Employee.class)
.whereEquals("FirstName", "Robert", true)
.toList();
from Employees where exact(FirstName == 'Robert')
Example II - Query With Inner Exact Match
// return all entities from 'Orders' collection
// which contain at least one order line with
// 'Singaporean Hokkien Fried Mee' product
// perform a case-sensitive match
List<Order> orders = session.query(Order.class)
.whereEquals("Lines[].ProductName", "Singaporean Hokkien Fried Mee", true)
.toList();
from Orders
where exact(Lines[].ProductName == 'Singaporean Hokkien Fried Mee')