diff --git a/README.md b/README.md
index a341eebc..c3680371 100644
--- a/README.md
+++ b/README.md
@@ -39,6 +39,10 @@ We have separate folders for the samples of individual modules:
* `example` - Example how to use basic text search, geo-spatial search and facets.
+## Spring Data Neo4j
+
+* `example` - Example to show basic node and relationship entities and repository usage.
+
## Spring Data web support
* `web` - Example for Spring Data web integration (binding `Pageable` instances to Spring MVC controller methods, using interfaces to bind Spring MVCrequest payloads).
diff --git a/neo4j/example/pom.xml b/neo4j/example/pom.xml
new file mode 100644
index 00000000..a4a14e9d
--- /dev/null
+++ b/neo4j/example/pom.xml
@@ -0,0 +1,71 @@
+
+
+
+
+ 4.0.0
+
+ spring-data-neo4j-example
+ Spring Data Neo4j - Example
+
+ 4.0.0.BUILD-SNAPSHOT
+ 1.1.2-SNAPSHOT
+ 2.2.4
+
+
+
+ org.springframework.data.examples
+ spring-data-neo4j-examples
+ 1.0.0.BUILD-SNAPSHOT
+ ../pom.xml
+
+
+
+
+
+ org.springframework.data
+ spring-data-neo4j
+ ${spring-data-neo4j.version}
+
+
+
+ org.springframework.data
+ spring-data-neo4j
+ ${spring-data-neo4j.version}
+ test-jar
+
+
+ org.neo4j
+ neo4j-ogm
+ ${neo4j-ogm.version}
+ test-jar
+ test
+
+
+ org.neo4j.app
+ neo4j-server
+ ${neo4j.version}
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.neo4j.test
+ neo4j-harness
+ ${neo4j.version}
+ test
+
+
+
+
+
+ spring-libs-snapshot
+ Spring
+ http://repo.spring.io/libs-snapshot
+
+
+
\ No newline at end of file
diff --git a/neo4j/example/src/main/java/example/springdata/neo4j/domain/Actor.java b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Actor.java
new file mode 100644
index 00000000..c45ef0ea
--- /dev/null
+++ b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Actor.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package example.springdata.neo4j.domain;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.neo4j.ogm.annotation.GraphId;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+/**
+ * An Actor node entity.
+ *
+ * @author Luanne Misquitta
+ */
+@NodeEntity(label = "Actor")
+public class Actor {
+
+ @GraphId private Long id;
+ private String name;
+
+ @Relationship(type = "ACTED_IN")
+ private Set roles = new HashSet<>();
+
+ public Actor() {
+ }
+
+ public Actor(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public Set getRoles() {
+ return roles;
+ }
+
+ public void actedIn(Movie movie, String roleName) {
+
+ Role role = new Role();
+ role.setRole(roleName);
+ role.setActor(this);
+ role.setMovie(movie);
+ roles.add(role);
+ movie.getRoles().add(role);
+ }
+}
diff --git a/neo4j/example/src/main/java/example/springdata/neo4j/domain/Movie.java b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Movie.java
new file mode 100644
index 00000000..33e581e3
--- /dev/null
+++ b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Movie.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package example.springdata.neo4j.domain;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.neo4j.ogm.annotation.GraphId;
+import org.neo4j.ogm.annotation.NodeEntity;
+import org.neo4j.ogm.annotation.Relationship;
+
+/**
+ * A Movie node entity.
+ *
+ * @author Luanne Misquitta
+ */
+@NodeEntity(label = "Movie")
+public class Movie {
+
+ @GraphId private Long id;
+ private String title;
+
+ @Relationship(type = "ACTED_IN", direction = "INCOMING")
+ private Set roles = new HashSet<>();
+
+ public Movie() {
+ }
+
+ public Movie(String title) {
+ this.title = title;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ @Relationship(type = "ACTED_IN", direction = "INCOMING")
+ public Set getRoles() {
+ return roles;
+ }
+
+}
diff --git a/neo4j/example/src/main/java/example/springdata/neo4j/domain/Role.java b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Role.java
new file mode 100644
index 00000000..9a7f3e7e
--- /dev/null
+++ b/neo4j/example/src/main/java/example/springdata/neo4j/domain/Role.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package example.springdata.neo4j.domain;
+
+import org.neo4j.ogm.annotation.EndNode;
+import org.neo4j.ogm.annotation.GraphId;
+import org.neo4j.ogm.annotation.RelationshipEntity;
+import org.neo4j.ogm.annotation.StartNode;
+
+/**
+ * A Role relationship entity between an actor and movie.
+ * @author Luanne Misquitta
+ */
+@RelationshipEntity(type = "ACTED_IN")
+public class Role {
+
+ @GraphId private Long id;
+ @StartNode private Actor actor;
+ @EndNode private Movie movie;
+ private String role;
+
+ public Role() {
+ }
+
+ public Actor getActor() {
+ return actor;
+ }
+
+ public void setActor(Actor actor) {
+ this.actor = actor;
+ }
+
+ public Movie getMovie() {
+ return movie;
+ }
+
+ public void setMovie(Movie movie) {
+ this.movie = movie;
+ }
+
+ public String getRole() {
+ return role;
+ }
+
+ public void setRole(String role) {
+ this.role = role;
+ }
+}
diff --git a/neo4j/example/src/main/java/example/springdata/neo4j/repo/ActorRepository.java b/neo4j/example/src/main/java/example/springdata/neo4j/repo/ActorRepository.java
new file mode 100644
index 00000000..f8acdf4a
--- /dev/null
+++ b/neo4j/example/src/main/java/example/springdata/neo4j/repo/ActorRepository.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package example.springdata.neo4j.repo;
+
+import example.springdata.neo4j.domain.Actor;
+import org.springframework.data.neo4j.repository.GraphRepository;
+
+/**
+ * GraphRepository for Actors.
+ * @author Luanne Misquitta
+ */
+public interface ActorRepository extends GraphRepository {
+
+}
diff --git a/neo4j/example/src/test/java/example/springdata/neo4j/ActorRepositoryIntegrationTest.java b/neo4j/example/src/test/java/example/springdata/neo4j/ActorRepositoryIntegrationTest.java
new file mode 100644
index 00000000..ecc6e2fa
--- /dev/null
+++ b/neo4j/example/src/test/java/example/springdata/neo4j/ActorRepositoryIntegrationTest.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package example.springdata.neo4j;
+
+import static org.junit.Assert.*;
+
+import example.springdata.neo4j.domain.Actor;
+import example.springdata.neo4j.domain.Movie;
+import example.springdata.neo4j.domain.Role;
+import example.springdata.neo4j.repo.ActorRepository;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+/**
+ * Simple integration test demonstrating the use of the ActorRepository
+ * @author Luanne Misquitta
+ */
+@ContextConfiguration(classes = {ExampleConfig.class})
+@RunWith(SpringJUnit4ClassRunner.class)
+@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
+public class ActorRepositoryIntegrationTest {
+
+ @Autowired ActorRepository actorRepository;
+
+ /**
+ * @see DATAGRAPH-752
+ * Test case to demonstrate saving node and relationship entities, and loading them via the repository.
+ */
+ @Test
+ public void shouldBeAbleToSaveAndLoadActor() {
+
+ Actor daniel = new Actor("Daniel Radcliffe");
+ Movie goblet = new Movie("Harry Potter and the Goblet of Fire");
+ daniel.actedIn(goblet,"Harry Potter");
+ actorRepository.save(daniel); //saves the actor and the movie
+
+
+ Actor actor = actorRepository.findOne(daniel.getId());
+ assertNotNull(actor);
+ assertEquals(daniel.getName(),actor.getName());
+ assertEquals(1,actor.getRoles().size());
+ Role role = actor.getRoles().iterator().next();
+ assertEquals("Harry Potter", role.getRole());
+ }
+
+}
diff --git a/neo4j/example/src/test/java/example/springdata/neo4j/ExampleConfig.java b/neo4j/example/src/test/java/example/springdata/neo4j/ExampleConfig.java
new file mode 100644
index 00000000..18bab351
--- /dev/null
+++ b/neo4j/example/src/test/java/example/springdata/neo4j/ExampleConfig.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2015 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package example.springdata.neo4j;
+
+import org.neo4j.ogm.session.SessionFactory;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.neo4j.config.Neo4jConfiguration;
+import org.springframework.data.neo4j.repository.config.EnableNeo4jRepositories;
+import org.springframework.data.neo4j.server.InProcessServer;
+import org.springframework.data.neo4j.server.Neo4jServer;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * @author Luanne Misquitta
+ */
+@Configuration
+@EnableTransactionManagement
+@EnableNeo4jRepositories("example.springdata.neo4j.repo")
+public class ExampleConfig extends Neo4jConfiguration{
+
+ @Override
+ public Neo4jServer neo4jServer() {
+ return new InProcessServer();
+ }
+
+ @Override
+ public SessionFactory getSessionFactory() {
+ return new SessionFactory("example.springdata.neo4j.domain");
+ }
+}
diff --git a/neo4j/pom.xml b/neo4j/pom.xml
new file mode 100644
index 00000000..9b28ccb1
--- /dev/null
+++ b/neo4j/pom.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ 4.0.0
+
+ spring-data-neo4j-examples
+ pom
+
+
+ org.springframework.data.examples
+ spring-data-examples
+ 1.0.0.BUILD-SNAPSHOT
+
+
+ Spring Data Neo4j 4 - Examples
+ Sample projects for Spring Data Neo4j 4
+
+
+ example
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e1f0027b..7effc720 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,7 @@
elasticsearch
web
bom
+ neo4j