Hi guys, I have continued to work on the Cypher DSL. For reference, have a look here: https://github.com/neo4j/cypher-dsl/blob/master/src/test/java/org/neo4j/cypherdsl/CypherReferenceTest.java
The main DSL is starting to stabilize, and it should now be reasonably easy to use. For the design decisions that I posted before, the results are: 1) Statics vs initialization block: both are supported! Examples: assertEquals( "START john=node(0) RETURN john", new CypherQuery() {{ starts( node( "john", 0 ) ).returns( nodes( "john" ) ); }}.toString() ); is the same as: starts(node("john", 0)).returns(nodes("john")); In first version there are no static imports, so it's very tab-completion friendly. Second is more compact, but requires static imports for alot. 2) Path syntax. To declare a path for the MATCH clause, it looks like so: .match(path("p").from("x").as("r").optional().out("KNOWS").hops(1,3).to("y") -> MATCH p=(x)-[r?:KNOWS*1..3]->(y) So that's that! Have a look at the GitHub class above for more details. I have also started integrating with QueryDSL for expressions and object mapping. I'll post separately about that to make it easier to follow any discussions. /Rickard -- Rickard Öberg Developer Neo Technology Twitter: @rickardoberg, Skype: rickardoberg _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user