将节点属性分组并作为Cypher中的视图返回

时间:2015-07-22 11:49:24

标签: spring neo4j cypher spring-data-neo4j-4

我正在使用Neo4J的v2.2.3和Spring Neo4j Data SDN 4 我想使用cypher查询返回节点的一些属性,并将它们映射到Spring数据存储库中的POJO.My函数的属性看起来像这样

@Query(
"MATCH(n:ServiceProvider{profileStatus:{pStatus},currentResidenceState:{location}}) RETURN n.name,n.currentResidenceAddress ,n.employmentStatus,"
                       + "n.idProofType,n.idProofNumber 
ORDER BY n.registrationDate DESC SKIP{skip} LIMIT {limit}")
List<AdminSearchMapResult> getServiceProviderRecords(
       @Param("pStatus")String pStatus,
       @Param("location")String location,
       @Param("skip") int skip,@Param("limit")int limit);

我收到类似

的错误
Scalar response queries must only return one column. Make sure your cypher query only returns one item.

我认为这是因为我无法将所有返回的属性捆绑到可以映射到POJO的视图中

如果我返回节点本身并将其映射到POJO,则可以正常工作

请指导

1 个答案:

答案 0 :(得分:1)

可以使用@QueryResult

完成此操作

使用AdminSearchMapResult注释@QueryResult POJO。例如:

@QueryResult
public class AdminSearchMapResult {

  String name;
  String currentResidenceAddress;
...

}

如果别名与字段名称不同,则可以选择使用@Property(name = "n.idProofType")注释属性。