Spring-data-neo4j获得多条路径

时间:2016-04-07 10:11:11

标签: java neo4j spring-data-neo4j-4 neo4j-ogm

我目前正在使用spring-data-neo4j来获取两个节点之间的路径。这是存储库:

"select * from job_post as jp 
  join experience as e on e.exp_id = jp.exp_id
  where jp.emp_id in (".$ids.")"

然而,例外情况说只有1行被发现但找到了2行

有关详细信息,请将代码更改为:

@Query("MATCH p=((n:GLNode)-[:GLRelationship*0..]->(m:GLNode)) WHERE id(n)={0} and id(m)={1} RETURN nodes(p)")
Collection<GLNode> getAllPathes(Long sid, Long eid);

我可以得到一些未正确映射到域@Query("MATCH p=((n:GLNode)-[:GLRelationship*0..]->(m:GLNode)) WHERE id(n)={0} and id(m)={1} RETURN nodes(p)") Collection<Collection<GLNode>> getAllPathes(Long sid, Long eid); 的响应,例如,节点的GLNode缺失。

如果我只找到最短的路径,例如,

id

然后一切正常。

那么,将从neo4j查询的多个路径映射到java中的单个对象的正确方法是什么?

感谢。

===============更新==============

我通过仅获取节点的id来提出临时解决方案,即

@Query("MATCH p=shortestPath((n:GLNode)-[:GLRelationship*0..]->(m:GLNode)) WHERE id(n)={0} and id(m)={1} RETURN nodes(p)")
Collection<GLNode> getAllPathes(Long sid, Long eid);

仅当客户知道所有图表时才有效。

=====================更新2 ===================== ==

预计只有1行,但实际上会发现2个异常,并带有以下代码:

@Query("MATCH p=((n:GLNode)-[:GLRelationship*0..]->(m:GLNode)) WHERE id(n)={0} AND id(m)={1} RETURN [node in nodes(p) | id(node)] AS nodes, [rel in relationships(p) | id(rel)] AS  rels")
Collection<HashMap> getAllPathes(Long sid, Long eid);

以下是例外情况:

@Query("MATCH p=((n:GLNode)-[:GLRelationship*0..]->(m:GLNode)) WHERE id(n)={0} AND id(m)={1} RETURN nodes(p)")
HashMap getAllPathes(Long sid, Long eid);

0 个答案:

没有答案