Neo4j - 将 CQL 返回结果映射到 List<POJO>
Posted
技术标签:
【中文标题】Neo4j - 将 CQL 返回结果映射到 List<POJO>【英文标题】:Neo4j - Mapping CQL Return Result to List<POJO> 【发布时间】:2016-11-14 13:04:23 【问题描述】:我创建了 CQL 查询以返回多个列表对象。但是此对象值是从两个不同的数组组合而成的。我想将此值列表解析为 List 对象,而无需使用 JPA 或 OGM 手动解析。
在我的 POJO 类中:
private String DIST_ID;
private long PV;
private String POST_DATE;
在我的回购界面中:
@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 WITHDIST_ID: DSTS.DIST_ID ,PV: array_one[i],POST_DATE: array_two[i] AS Odh RETURN Odh;")
public List<List<String>> getAllPVForMonth();
当我调用此方法时,结果低于[在 Junit 中测试]
[DIST_ID=305594091, PV=110, POST_DATE=28-Sep-16, DIST_ID=305594191, PV=503, POST_DATE=30-Sep-16]
我想将此结果转换为 pojo 对象列表。我不想将 List<List<String>>
解析为 List<POJO>
。任何想法请分享您的输入。
【问题讨论】:
我对Spring没有太多经验,但是您是否尝试过将接口定义为投影? docs.spring.io/spring-data/jpa/docs/current/reference/html/… 【参考方案1】:官方Spring data Neo4j documentation好像有这个描述
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;
【讨论】:
以上是关于Neo4j - 将 CQL 返回结果映射到 List<POJO>的主要内容,如果未能解决你的问题,请参考以下文章