neo4j Cypher查询与graphId匹配返回任何内容

时间:2014-08-14 10:06:07

标签: playframework neo4j cypher spring-data-neo4j

我正在使用Play!带有neo4j插件的框架2.3应用程序 - 发现:here

我有这个模型类(代码片段):

  @NodeEntity
  @TypeAlias("_Request")
  public class Request {

    @GraphId
    @Indexed
    public Long id;

    @Indexed
    public String requestType;

    @Indexed
    public String requestStatus;
  }

当我执行此密码查询时:

  MATCH (n:_Request) RETURN n;

它返回Request节点和节点id(指定的graphId值= 138)

现在我运行这个:

  MATCH (n:_Request) WHERE n.id = 138 RETURN n;

它什么都不返回。为什么是这样?我可以不对graphId注释进行查询吗?  请帮忙

1 个答案:

答案 0 :(得分:4)

此处的问题是id中的n被解释为n的属性,而不是基础图ID。

为了匹配您正在寻找的节点,您需要稍微修改一下您的查询,让Neo4j尝试通过其底层图形ID而不是名为id的属性来获取节点。

START n=node(138) RETURN n

如果有这么小的变化,你应该得到你期望的结果。