2016-11-14 1 views
0

Ich habe CQL-Abfrage erstellt, um mehrere Listenobjekte zurückzugeben. Aber diese Objektwerte werden aus zwei verschiedenen Arrays kombiniert. Ich möchte diese Liste von Werten zu List-Objekte ohne manuelle Parsing mit JPA analysieren oder OGM.Neo4j - Mapping CQL Rückgabeergebnis zur Liste <POJO>

In meiner POJO Klasse:

private String DIST_ID; 

private long PV; 

private String POST_DATE; 

In meiner Repo-Schnittstelle:

@Query("MATCH(DST:Distributor) WITH DST AS DSTS, DST.PV AS array_one, DST.POST_DATE AS array_two UNWIND RANGE(0, SIZE(array_one) - 1) AS i WITH{DIST_ID: DSTS.DIST_ID ,PV: array_one[i],POST_DATE: array_two[i]} AS Odh RETURN Odh;") 
public List<List<String>> getAllPVForMonth(); 

Wenn ich diese Methode nenne ich unten Ergebnis bin immer [Geprüft Junit]

[{DIST_ID=305594091, PV=110, POST_DATE=28-Sep-16}, {DIST_ID=305594191, PV=503, POST_DATE=30-Sep-16}] 

Ich möchte dieses Ergebnis in Liste von Pojo-Objekten konvertieren. Ich möchte List<List<String>> nicht zuanalysieren.Any Idee teilen Sie bitte Ihre Eingaben.

+0

ich nicht viel Erfahrung mit Frühling haben, aber haben Sie versucht, eine Schnittstelle als Projektion zu definieren? http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#projections – Davide

Antwort

1

Es scheint, ist dies in der offiziellen Spring data Neo4j documentation

beschrieben
public interface MovieRepository extends GraphRepository<Movie> { 

    @Query("MATCH (movie:Movie)-[r:RATING]->(), (movie)<-[:ACTS_IN]-(actor:Actor) " + 
      "WHERE movie.id={0} " + 
      "RETURN movie as movie, COLLECT(actor) AS 'cast', AVG(r.stars) AS 'averageRating'") 
    MovieData getMovieData(String movieId); 

    @QueryResult 
    public class MovieData { 
     Movie movie; 
     Double averageRating; 
     Set<Actor> cast; 
    } 

} 
Verwandte Themen