use of org.neo4j.ogm.cypher.Filters in project neo4j-ogm by neo4j.
the class RelationshipQueryStatementsTest method testFindByNestedPropertyOutgoing.
// DATAGRAPH-632
@Test
public void testFindByNestedPropertyOutgoing() {
Filter planetFilter = new Filter("name", ComparisonOperator.EQUALS, "Earth");
planetFilter.setNestedPropertyName("world");
planetFilter.setNestedEntityTypeLabel("Planet");
planetFilter.setRelationshipType("ORBITS");
planetFilter.setRelationshipDirection(Relationship.Direction.OUTGOING);
assertThat(query.findByType("ORBITS", new Filters().add(planetFilter), 4).getStatement()).isEqualTo("MATCH (n:`Planet`) WHERE n.`name` = $`world_name_0` " + "MATCH (n)-[r0:`ORBITS`]->(m) WITH DISTINCT(r0) as r0,startnode(r0) AS n, endnode(r0) AS m " + "MATCH p1 = (n)-[*0..4]-() WITH r0, COLLECT(DISTINCT p1) AS startPaths, m " + "MATCH p2 = (m)-[*0..4]-() WITH r0, startPaths, COLLECT(DISTINCT p2) AS endPaths " + "WITH r0,startPaths + endPaths AS paths " + "UNWIND paths AS p RETURN DISTINCT p, ID(r0)");
}
use of org.neo4j.ogm.cypher.Filters in project neo4j-ogm by neo4j.
the class RelationshipQueryStatementsTest method testFindByMultipleNestedPropertiesMissingBooleanOperator.
// GH-73
@Test(expected = MissingOperatorException.class)
public void testFindByMultipleNestedPropertiesMissingBooleanOperator() {
Filter planetNameFilter = new Filter("name", ComparisonOperator.EQUALS, "Earth");
planetNameFilter.setNestedPropertyName("world");
planetNameFilter.setNestedEntityTypeLabel("Planet");
planetNameFilter.setRelationshipType("ORBITS");
planetNameFilter.setRelationshipDirection(Relationship.Direction.OUTGOING);
Filter planetMoonsFilter = new Filter("moons", ComparisonOperator.EQUALS, "Earth");
planetMoonsFilter.setNestedPropertyName("moons");
planetMoonsFilter.setNestedEntityTypeLabel("Planet");
planetMoonsFilter.setRelationshipType("ORBITS");
planetMoonsFilter.setRelationshipDirection(Relationship.Direction.OUTGOING);
query.findByType("ORBITS", new Filters().add(planetNameFilter, planetMoonsFilter), 4).getStatement();
}
use of org.neo4j.ogm.cypher.Filters in project neo4j-ogm by neo4j.
the class RelationshipQueryStatementsTest method testFindByPropertiesOred.
// DATAGRAPH-632
@Test
public void testFindByPropertiesOred() {
Filter distance = new Filter("distance", ComparisonOperator.EQUALS, 60.2);
Filter time = new Filter("time", ComparisonOperator.EQUALS, 3600);
time.setBooleanOperator(BooleanOperator.OR);
assertThat(query.findByType("ORBITS", new Filters().add(distance, time), 4).getStatement()).isEqualTo("MATCH (n)-[r0:`ORBITS`]->(m) WHERE r0.`distance` = $`distance_0` OR r0.`time` = $`time_1` " + "WITH DISTINCT(r0) as r0,startnode(r0) AS n, endnode(r0) AS m MATCH p1 = (n)-[*0..4]-() " + "WITH r0, COLLECT(DISTINCT p1) AS startPaths, m MATCH p2 = (m)-[*0..4]-() " + "WITH r0, startPaths, COLLECT(DISTINCT p2) AS endPaths " + "WITH r0,startPaths + endPaths AS paths UNWIND paths AS p RETURN DISTINCT p, ID(r0)");
}
use of org.neo4j.ogm.cypher.Filters in project neo4j-ogm by neo4j.
the class RelationshipQueryStatementsTest method testFindByPropertiesAndedWithMissingBooleanOperator.
// GH-73
@Test(expected = MissingOperatorException.class)
public void testFindByPropertiesAndedWithMissingBooleanOperator() {
Filter distance = new Filter("distance", ComparisonOperator.EQUALS, 60.2);
Filter time = new Filter("time", ComparisonOperator.EQUALS, 3600);
query.findByType("ORBITS", new Filters().add(distance, time), 4).getStatement();
}
use of org.neo4j.ogm.cypher.Filters in project neo4j-ogm by neo4j.
the class RelationshipQueryStatementsTest method testFindByPropertiesWithDifferentComparisonOperatorsAnded.
// DATAGRAPH-632
@Test
public void testFindByPropertiesWithDifferentComparisonOperatorsAnded() {
Filter distance = new Filter("distance", ComparisonOperator.LESS_THAN, 60.2);
Filter time = new Filter("time", ComparisonOperator.EQUALS, 3600);
time.setBooleanOperator(BooleanOperator.AND);
assertThat(query.findByType("ORBITS", new Filters().add(distance, time), 4).getStatement()).isEqualTo("MATCH (n)-[r0:`ORBITS`]->(m) WHERE r0.`distance` < $`distance_0` AND r0.`time` = $`time_1` " + "WITH DISTINCT(r0) as r0,startnode(r0) AS n, endnode(r0) AS m MATCH p1 = (n)-[*0..4]-() " + "WITH r0, COLLECT(DISTINCT p1) AS startPaths, m MATCH p2 = (m)-[*0..4]-() " + "WITH r0, startPaths, COLLECT(DISTINCT p2) AS endPaths " + "WITH r0,startPaths + endPaths AS paths UNWIND paths AS p RETURN DISTINCT p, ID(r0)");
}
Aggregations