Search in sources :

Example 31 with Filters

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)");
}
Also used : Filters(org.neo4j.ogm.cypher.Filters) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Example 32 with Filters

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();
}
Also used : Filters(org.neo4j.ogm.cypher.Filters) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Example 33 with Filters

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)");
}
Also used : Filters(org.neo4j.ogm.cypher.Filters) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Example 34 with Filters

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();
}
Also used : Filters(org.neo4j.ogm.cypher.Filters) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Example 35 with Filters

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)");
}
Also used : Filters(org.neo4j.ogm.cypher.Filters) Filter(org.neo4j.ogm.cypher.Filter) Test(org.junit.Test)

Aggregations

Filters (org.neo4j.ogm.cypher.Filters)82 Filter (org.neo4j.ogm.cypher.Filter)78 Test (org.junit.Test)77 Restaurant (org.neo4j.ogm.domain.restaurant.Restaurant)10 Date (java.util.Date)6 CypherQuery (org.neo4j.ogm.cypher.query.CypherQuery)6 SortOrder (org.neo4j.ogm.cypher.query.SortOrder)4 Rating (org.neo4j.ogm.domain.cineasts.annotated.Rating)3 User (org.neo4j.ogm.domain.cineasts.annotated.User)3 Before (org.junit.Before)2 Pagination (org.neo4j.ogm.cypher.query.Pagination)2 Movie (org.neo4j.ogm.domain.cineasts.annotated.Movie)2 Pet (org.neo4j.ogm.domain.cineasts.annotated.Pet)2 Flight (org.neo4j.ogm.domain.gh851.Flight)2 Map (java.util.Map)1 UnaryOperator (java.util.function.UnaryOperator)1 PropertyValueTransformer (org.neo4j.ogm.cypher.PropertyValueTransformer)1 ContainsAnyComparison (org.neo4j.ogm.cypher.function.ContainsAnyComparison)1 DistanceComparison (org.neo4j.ogm.cypher.function.DistanceComparison)1 DistanceFromPoint (org.neo4j.ogm.cypher.function.DistanceFromPoint)1