diff --git a/src/docbkx/reference/programming-model/repositories.xml b/src/docbkx/reference/programming-model/repositories.xml index 9b0377b4f..65e743ef9 100644 --- a/src/docbkx/reference/programming-model/repositories.xml +++ b/src/docbkx/reference/programming-model/repositories.xml @@ -263,7 +263,55 @@ Iterable findByParentAgeAndMarried(int age, boolean married) - +
+Derived Finder Methods + +Use the meta information of your domain model classes to declare repository finders that navigate along relationships and compare properties. The path defined with the method name is used to create a Cypher query that is executed on the graph. + + + Repository and usage of derived finder methods + group + @RelatedTo(type = "group", direction = Direction.INCOMING) + private Set members=new HashSet(); + + private Group(){} + public Group(String title, Person...people) { + this.title = title; + members.addAll(asList(people)); + } + } + public interface PersonRepository extends GraphRepository { + Iterable findByGroupTitle(String name); + } + + @Autowired PersonRepository personRepository; + + Person oliver=personRepository.save(new Person("Oliver")); + final Group springData = new Group("spring-data",oliver); + groupRepository.save(springData); + + final Iterable members = personRepository.findByGroupTitle("spring-data"); + assertThat(members.iterator().next().name, is(oliver.name)); +]]> + +
+
diff --git a/src/docbkx/reference/programming-model/template.xml b/src/docbkx/reference/programming-model/template.xml index d11149307..31af816d5 100644 --- a/src/docbkx/reference/programming-model/template.xml +++ b/src/docbkx/reference/programming-model/template.xml @@ -16,7 +16,51 @@ DSL was added. - +
+ Basic operations + + For direct retrieval of nodes and relationships, the getReferenceNode(), + getNode() and getRelationship() methods can be used. + + + There are methods (createNode() and createRelationship()) for creating nodes and + relationships that automatically set provided properties. + + + Neo4j template +() { + public String convert(PropertyContainer element, Class type) { + return (String) element.getProperty("name"); + } + }).single()); + ]]> + +
Core-Operations