use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class NodeQueryStatementsTest method testFindByMultipleOrPropertiesLessThan.
// DATAGRAPH-629
@Test
public void testFindByMultipleOrPropertiesLessThan() {
Filter nameParam = new Filter("name", ComparisonOperator.EQUALS, "AST-1");
Filter diameterParam = new Filter("diameter", ComparisonOperator.LESS_THAN, 60);
diameterParam.setBooleanOperator(BooleanOperator.OR);
assertThat(queryStatements.findByType("Asteroid", new Filters().add(nameParam).add(diameterParam), 2).getStatement()).isEqualTo("MATCH (n:`Asteroid`) WHERE n.`name` = $`name_0` OR n.`diameter` < $`diameter_1` WITH n MATCH p=(n)-[*0..2]-(m) RETURN p, ID(n)");
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class NodeQueryStatementsTest method collidesWithEarthFilter.
private static Filter collidesWithEarthFilter() {
Filter planetParam = new Filter("name", ComparisonOperator.EQUALS, "Earth");
planetParam.setNestedPropertyName("collidesWith");
planetParam.setNestedEntityTypeLabel("Planet");
planetParam.setRelationshipType("COLLIDES");
planetParam.setRelationshipDirection(Relationship.Direction.OUTGOING);
return planetParam;
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class NodeQueryStatementsTest method testFindByNestedPropertiesOnTheSameEntityOredNotFollowingEachOtherDirectly.
// Would be something like findByMoonSomethingAndFindByPlanetXOrFindByPlanetY
@Test
public void testFindByNestedPropertiesOnTheSameEntityOredNotFollowingEachOtherDirectly() {
Filter planetParam = collidesWithEarthFilter();
Filter planetParam2 = collidesWithMarsFilter();
planetParam2.setBooleanOperator(BooleanOperator.OR);
Filter moonParam = orbitsMoonFilter();
moonParam.setBooleanOperator(BooleanOperator.AND);
assertThat(queryStatements.findByType("Asteroid", new Filters().add(planetParam).add(moonParam).add(planetParam2), 1).getStatement()).isEqualTo("MATCH (n:`Asteroid`) MATCH (m0:`Planet`) WHERE m0.`name` = $`collidesWith_name_0` OR m0.`name` = $`collidesWith_name_2` " + "MATCH (m1:`Moon`) WHERE m1.`name` = $`moon_name_1` MATCH (n)-[:`COLLIDES`]->(m0) " + "MATCH (n)<-[:`ORBITS`]-(m1) WITH DISTINCT n MATCH p=(n)-[*0..1]-(m) RETURN p, ID(n)");
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class NodeQueryStatementsTest method testFindByPropertyIsNull.
@Test
public void testFindByPropertyIsNull() {
Filter isNull = new Filter("score", ComparisonOperator.IS_NULL, null);
String statement = queryStatements.findByType("Restaurant", new Filters().add(isNull), 3).getStatement();
assertThat(statement).isEqualTo("MATCH (n:`Restaurant`) WHERE n.`score` IS NULL WITH n MATCH p=(n)-[*0..3]-(m) RETURN p, ID(n)");
Filter isNotNull = new Filter("score", ComparisonOperator.IS_NULL, null);
isNotNull.setNegated(true);
statement = queryStatements.findByType("Restaurant", new Filters().add(isNotNull), 3).getStatement();
assertThat(statement).isEqualTo("MATCH (n:`Restaurant`) WHERE NOT(n.`score` IS NULL ) WITH n MATCH p=(n)-[*0..3]-(m) RETURN p, ID(n)");
}
use of org.neo4j.ogm.cypher.Filter in project neo4j-ogm by neo4j.
the class NodeQueryStatementsTest method testFindByMultipleAndPropertiesGreaterThan.
// DATAGRAPH-629
@Test
public void testFindByMultipleAndPropertiesGreaterThan() {
Filter nameParam = new Filter("name", ComparisonOperator.EQUALS, "AST-1");
Filter diameterParam = new Filter("diameter", ComparisonOperator.GREATER_THAN, 60);
diameterParam.setBooleanOperator(BooleanOperator.AND);
assertThat(queryStatements.findByType("Asteroid", new Filters().add(nameParam).add(diameterParam), 2).getStatement()).isEqualTo("MATCH (n:`Asteroid`) WHERE n.`name` = $`name_0` AND n.`diameter` > $`diameter_1` WITH n MATCH p=(n)-[*0..2]-(m) RETURN p, ID(n)");
}
Aggregations