I am exploring how I can write generic query for any Node given a set of search parameters and came across org.neo4j.ogm.cypher.Filters (in neo4j-ogm-core-2.0.3.jar)
I would have liked to have more options for ComparisionOperator like CONTAINS, IN, STARTSWITH etc.
Right now the operators supported are:
EQUALS("=")MATCHES("=~")LIKE("=~", new CaseInsensitiveLikePropertyValueTransformer())GREATER_THAN(">")LESS_THAN("<")
Are there is any plan to enhance this to support more operations?
Here is an example of how I am using Filters:
public Collection<User> findUserByFirstNameLike(String firstName) {
Filters filters = new Filters();
Filter firstNameFilter = new Filter("firstName", firstName);
firstNameFilter.setComparisonOperator(ComparisonOperator.LIKE);
filters.add(firstNameFilter);
Collection<User> users = session.loadAll(User.class, filters);
return users;
}
Filtershas been updated inneo4j-ogm-coreversion2.1.0.All 3 options you want to see (
CONTAINS,IN,STARTS WITH) are available in this version along with:LESS_THAN("<")LESS_THAN_EQUAL("<=")IS_NULL("IS NULL")ENDING_WITH("ENDS WITH")EXISTS("EXISTS")IS_TRUE("=")