Neo4j Session.query()-如何将查询响应映射到自定义Java对象 我有一个节点实体:
那么,如何将给定的查询结果直接映射到Neo4j Session.query()-如何将查询响应映射到自定义Java对象 我有一个节点实体:,neo4j,spring-data,cypher,spring-data-neo4j,spring-data-neo4j-4,Neo4j,Spring Data,Cypher,Spring Data Neo4j,Spring Data Neo4j 4,那么,如何将给定的查询结果直接映射到Consumer或CustomQueryResult对象中呢 或者,使用具有动态关系名称和深度的Spring Data Neo4j存储库也可以做同样的事情,比如: @Query("MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:{1} *..{2}]->(endNode:Consumer) RETURN startNode as node, rel as relationships") C
Consumer
或CustomQueryResult
对象中呢
或者,使用具有动态关系名称和深度的Spring Data Neo4j存储库也可以做同样的事情,比如:
@Query("MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:{1} *..{2}]->(endNode:Consumer) RETURN startNode as node, rel as relationships")
CustomQueryResult findByMobileNumberAndRelationship(String mobileNo, String relationshipName, @Depth int depth);
尽管我确信上述代码不起作用。您的查询返回多行
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, rel as relationships
其中,节点
对每个rel
重复。存储库基础结构能够处理这个问题,但是queryForObject
不能,它需要一行
如果您以以下方式修改查询,使其仅返回1行,则该查询应该可以工作:
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, COLLECT(rel) as relationships
您的查询返回多行
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, rel as relationships
其中,节点
对每个rel
重复。存储库基础结构能够处理这个问题,但是queryForObject
不能,它需要一行
如果您以以下方式修改查询,使其仅返回1行,则该查询应该可以工作:
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, COLLECT(rel) as relationships
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, rel as relationships
MATCH (startNode:Consumer {mobileNumber : {0}})-[rel:HAS_CONTACT *..1]->(endNode:Consumer)
RETURN startNode as node, COLLECT(rel) as relationships