Search in sources :

Example 76 with Filter

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

Example 77 with Filter

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

Example 78 with Filter

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

Example 79 with Filter

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

Example 80 with Filter

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

Aggregations

Filter (org.neo4j.ogm.cypher.Filter)155 Test (org.junit.Test)146 Filters (org.neo4j.ogm.cypher.Filters)78 User (org.neo4j.ogm.domain.cineasts.annotated.User)19 Rating (org.neo4j.ogm.domain.cineasts.annotated.Rating)18 Movie (org.neo4j.ogm.domain.cineasts.annotated.Movie)17 Restaurant (org.neo4j.ogm.domain.restaurant.Restaurant)12 Date (java.util.Date)10 Session (org.neo4j.ogm.session.Session)10 DistanceFromNativePoint (org.neo4j.ogm.cypher.function.DistanceFromNativePoint)8 SomethingSpatial (org.neo4j.ogm.persistence.types.nativetypes.SomethingSpatial)8 HashSet (java.util.HashSet)7 CypherQuery (org.neo4j.ogm.cypher.query.CypherQuery)7 GroupMember (org.neo4j.ogm.domain.gh824.GroupMember)7 ArrayList (java.util.ArrayList)4 Actor (org.neo4j.ogm.domain.cineasts.annotated.Actor)4 User (org.neo4j.ogm.domain.gh824.User)4 UserGroup (org.neo4j.ogm.domain.gh824.UserGroup)4 Studio (org.neo4j.ogm.domain.music.Studio)4 Collections (java.util.Collections)2