diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/GraphRepositoryTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/GraphRepositoryTest.java index 92c20ef3c..1965e3572 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/GraphRepositoryTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/GraphRepositoryTest.java @@ -374,4 +374,14 @@ public class GraphRepositoryTest { final List beings = beingRepository.findAll().as(List.class); assertEquals(3,beings.size()); } + + @Test + public void findWithMapResult() throws InterruptedException + { + Iterable result = personRepository.getAllNamesAndPeople(); + PersonRepository.NameAndPersonResult nameAndPerson = IteratorUtil.first( result ); + assertEquals( testTeam.david.getName(), nameAndPerson.getName() ); + assertEquals( testTeam.david, nameAndPerson.getPerson() ); + } + } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java index 72b4d1b08..9aa4631f6 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java @@ -19,11 +19,12 @@ package org.springframework.data.neo4j.repository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; +import org.springframework.data.neo4j.annotation.MapResult; import org.springframework.data.neo4j.annotation.Query; import org.springframework.data.neo4j.annotation.QueryType; +import org.springframework.data.neo4j.annotation.ResultColumn; import org.springframework.data.neo4j.model.Group; import org.springframework.data.neo4j.model.Person; -import org.springframework.data.neo4j.model.Personality; import org.springframework.data.repository.query.Param; import java.util.Map; @@ -79,5 +80,18 @@ public interface PersonRepository extends GraphRepository, NamedIndexRep Iterable findByPersonality(String personality); Iterable findByAge(int age); + + @Query("start person=node:`name-index`('name:*') return person.name as name, person order by name asc ") + Iterable getAllNamesAndPeople(); + + @MapResult + interface NameAndPersonResult + { + @ResultColumn("name") + String getName(); + + @ResultColumn("person") + Person getPerson(); + } }