Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
May 31, 2023 15:54
May 31, 2023 15:54
June 30, 2020 16:34

The Neo4j Cypher-DSL

badge measure?project=org measure?project=org Maven Central

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.


For a gentle introduction and some getting started guides, please use our Manual.

Getting Started

Adding the necessary dependencies

First, include the dependency to the Neo4j Cypher-DSL under the following coordinates: org.neo4j:neo4j-cypher-dsl:

Maven configuration

Inclusion of the Neo4j Cypher-DSL in a Maven project

Gradle configuration

Inclusion of the Neo4j Cypher-DSL in a Gradle project
dependencies {
    implementation 'org.neo4j:neo4j-cypher-dsl:2023.3.2'

A simple example

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)

        // Prints MATCH (m:`Movie`) RETURN m

Required Java Version

From version 2023.0.0 onwards, the minimal required Java version to use and build the Cypher-DSL is Java 17. If you need a version that is compatible with Java 8, please use 2022.8.x.


The Cypher-DSL itself is licenced under the Apache License 2.0, the parser module is licensed under the GNU General Public License 3.