The Neo4j Cypher-DSL in its current form is a spin-off from Spring Data Neo4j 6+ (né Spring Data Neo4j⚡️RX), where it is used to generate all Cypher queries. We thank all contributors to all branches prior to 2020.0 for their effort in creating the previous versions.
The primary goal of this project is to have a type safe way of creating Cypher queries targeted at Neo4j 4.0+. Most of the constructs used here are modelled after openCypher, but we include several constructs specific to Neo4j.
The core module of the Neo4j Cypher-DSL has no required runtime dependencies.
This rebooted version of the Neo4j Cypher-DSL uses CalVer in the same way Spring does since early 2020 (see Updates to Spring Versions), starting at 2020.0.0.
The year digit is treated in a semver fashion for the core module. That means that you won’t experience any breaking changes when staying in a release line. However, the first or the latest release in a given year does not necessarily reflect the current calendar year. It’s kind of a trade-off, but one that we think is valuable, otherwise we would need to postpone the first release in a year until we need todo some breaking changes.
For a gentle introduction and some getting started guides, please use our Manual.
First, include the dependency to the Neo4j Cypher-DSL under the following coordinates: org.neo4j:neo4j-cypher-dsl
:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher-dsl</artifactId>
<version>2024.4.0</version>
</dependency>
With the Cypher-DSL, you can build your queries starting with the static methods provided through org.neo4j.cypherdsl.core.Cypher
.
Static imports for those packages should be allowed:
import static org.neo4j.cypherdsl.core.Cypher.*;
import org.neo4j.cypherdsl.core.Cypher;
class SimpleExample {
public static void main(String... a) {
var m = node("Movie").named("m");
var statement = Cypher.match(m)
.returning(m)
.build();
System.out.println(statement.getCypher());
// Prints MATCH (m:`Movie`) RETURN m
}
}
The Cypher-DSL itself is licenced under the Apache License 2.0.