@@ -149,6 +149,12 @@ interface MovieRepository extends Neo4jRepository<Movie, String> {
149149 MovieWithSequelProjection findProjectionByTitleAndDescription (String title , String description );
150150
151151 MovieWithSequelEntity findByTitleAndDescription (String title , String description );
152+
153+ @ Query ("MATCH (m:Movie{title:'The Matrix'})<-[a:ACTED_IN]-(p:Person) WITH a,p,m order by p.name return m, collect(a), collect(p)" )
154+ Movie findMatrixWithSortedAscActors ();
155+
156+ @ Query ("MATCH (m:Movie{title:'The Matrix'})<-[a:ACTED_IN]-(p:Person) WITH a,p,m order by p.name DESC return m, collect(a), collect(p)" )
157+ Movie findMatrixWithSortedDescActors ();
152158 }
153159
154160 @ Test // GH-1906
@@ -457,6 +463,19 @@ void projectDirectCycleEntityReference(@Autowired MovieRepository movieRepositor
457463 assertThat (secondSequel .getActors ()).isNotEmpty ();
458464 }
459465
466+ @ Test // GH-2458
467+ void findPreservesOrderFromResultAscInRelationshipList (@ Autowired MovieRepository repository ) {
468+ assertThat (repository .findMatrixWithSortedAscActors ().getActors ()).extracting ("person" ).extracting ("name" )
469+ .containsExactly ("Carrie-Anne Moss" , "Emil Eifrem" , "Gloria Foster" , "Hugo Weaving" , "Keanu Reeves" ,
470+ "Laurence Fishburne" );
471+ }
472+ @ Test // GH-2458
473+ void findPreservesOrderFromResultDescInRelationshipList (@ Autowired MovieRepository repository ) {
474+ assertThat (repository .findMatrixWithSortedDescActors ().getActors ()).extracting ("person" ).extracting ("name" )
475+ .containsExactly ("Laurence Fishburne" , "Keanu Reeves" , "Hugo Weaving" , "Gloria Foster" , "Emil Eifrem" ,
476+ "Carrie-Anne Moss" );
477+ }
478+
460479 @ Configuration
461480 @ EnableTransactionManagement
462481 @ EnableNeo4jRepositories (considerNestedRepositories = true )
0 commit comments