我有那些实体:
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中获取这些数据的任何想法?