自定义查询:在@QueryResult中汇总结果

时间:2019-07-09 17:58:10

标签: neo4j spring-data-neo4j

我有那些实体:

Pattern{
  List<Image> images;
}

Image{
  List<User> voters
}

User {
  ...
}

用户可以为一个或多个图像投票,一个或多个图像可以代表一个图案。

我尝试按其ID提取模式,我还需要获取其图像以及每个图像的选民。

我的查询:

@Query("MATCH (p:Pattern {id : {id}}) "
            + "OPTIONAL MATCH (p)-[ima:SUBMITTED_TO_REPRESENT]-(i)  "
            + "OPTIONAL MATCH (i)-[v:VOTE_FOR_IMG]-(u:User) "
            + "return p, ima, collect(i), v, collect(u)")
    Optional<Pattern> fetchPattern(String id);

这是有效的,因为我在Pattern实体中获取结果。但是我需要在@QueryResult PatternInfo中获取结果,该结果与Pattern实体略有不同,但对于上面的那些字段则不是:

@QueryResult
@Data
@Getter
@Setter
@NoArgsConstructor
PatternInfo{
  ...
  private List<Image> images;
}

当我尝试在PatternInfo中获取上述查询时:

@Query("....")
Optional<PatternInfo> fetchPattern(String id);

然后我得到错误

  

错误的结果大小:最多为1

当我在neo4j浏览器中运行查询时,我只得到1个结果,其中包含图像数组和投票者数组。

关于如何在@QueryResult中获取这些数据的任何想法?

0 个答案:

没有答案