diff --git a/pom.xml b/pom.xml
index 756d5ce..a3cec51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
org.neo4j.driver
neo4j-java-driver
- 5.28.4
+ 5.28.5
diff --git a/src/main/resources/examples/Movie.java b/src/main/resources/examples/Movie.java
new file mode 100644
index 0000000..a6700e4
--- /dev/null
+++ b/src/main/resources/examples/Movie.java
@@ -0,0 +1,9 @@
+package com.neo4j.app;
+
+import java.util.List;
+
+public record Movie(String movieId,
+ String title,
+ List actors) {
+
+}
diff --git a/src/main/resources/examples/ObjectMapping.java b/src/main/resources/examples/ObjectMapping.java
new file mode 100644
index 0000000..8c80977
--- /dev/null
+++ b/src/main/resources/examples/ObjectMapping.java
@@ -0,0 +1,69 @@
+package com.neo4j.app;
+
+import java.util.Map;
+
+import org.neo4j.driver.AuthTokens;
+import org.neo4j.driver.GraphDatabase;
+import com.neo4j.app.Movie;
+import com.neo4j.app.Person;
+
+public class ObjectMapping {
+ public static void main(String[] args) {
+ AppProperties.loadProperties();
+
+ // Create a new Neo4j driver instance
+ var driver = GraphDatabase.driver(
+ System.getProperty("NEO4J_URI"), // <1>
+ AuthTokens.basic(
+ System.getProperty("NEO4J_USERNAME"), // <2>
+ System.getProperty("NEO4J_PASSWORD"))
+ );
+
+ // Verify the connection
+ driver.verifyConnectivity();
+
+ // Execute a Cypher query to find a person
+ final String personCypher = """
+ MATCH (person:Person {name: $name})
+ RETURN person
+ """;
+ final String name = "Tom Hanks";
+
+ var person = driver.executableQuery(personCypher)
+ .withParameters(Map.of("name", name))
+ .execute()
+ .records()
+ .stream()
+ .map(record -> record.get("person").as(Person.class))
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException("Person not found"));
+
+ System.out.println(person);
+
+ // Execute a Cypher query to find 1 movie and its actors
+ final String movieCypher = """
+ MATCH (movie:Movie)
+ LIMIT 1
+ RETURN movie {
+ .*,
+ actors: COLLECT {
+ MATCH (actor:Person)-[r:ACTED_IN]->(movie)
+ RETURN actor
+ }
+ }
+ """;
+
+ var movie = driver.executableQuery(movieCypher)
+ .execute()
+ .records()
+ .stream()
+ .map(record -> record.get("movie").as(Movie.class))
+ .findFirst()
+ .orElseThrow(() -> new RuntimeException("No movie found"));
+
+ System.out.println(movie);
+
+ // Close the connection
+ driver.close();
+ }
+}
diff --git a/src/main/resources/examples/Person.java b/src/main/resources/examples/Person.java
new file mode 100644
index 0000000..221e2a0
--- /dev/null
+++ b/src/main/resources/examples/Person.java
@@ -0,0 +1,8 @@
+package com.neo4j.app;
+
+import java.time.LocalDate;
+
+public record Person(String imdbId,
+ String name) {
+
+}