【问题标题】:Relation is not returning while defining self-referential nodes in SDN (Spring Data Neo4J)在 SDN (Spring Data Neo4J) 中定义自引用节点时关系未返回
【发布时间】:2018-11-09 16:00:08
【问题描述】:

我们使用 6 个月的历史网络流量数据生成 48 小时的预测数据。最终的投影数据被加载到 Neo4J 中,以支持前端 Web 应用程序,用户可以在其中搜索服务器并查看其未来与组织内其他服务器的通信/数据传输。我们定义了一个主机节点和关系 1 到 48 小时(1H、2H、3H....48H)。以下常规密码查询可以正常工作并返回包含关系信息的数据。

MATCH p=(parent:HOST)-[r]->(child:HOST)
WHERE parent.HOST_NAME = " "
RETURN p, type(r)

但是,SDN(Spring Data Neo4j)设置没有返回关系信息。节点实体定义如下。

@NodeEntity
public class Host {
  @GraphId
  private Long id;
  private String Host_Name;

  @Relationship(type="")
  private List<Host> hosts;

  public List<Host> getHosts() {
    return hosts;
  }

  public Long getId() {
    return id;
  }

  public String getName() {
    return Host_Name;
  }
}

并且存储库定义为

public interface HostRepository extends Neo4jRepository<Host, Long> {
   @Query("MATCH p=(parent:Host)<-[r:`28H`]-(child:Host) WHERE parent.Host_Name = \"pserver_01\" RETURN p, type(r)")
   Collection<Host> getAllHosts();
}

每小时的关系信息 (type(r)) 没有从 spring 数据 neo4j 存储库返回。

节点和关系定义是否正确?我在这里错过了什么吗?

任何帮助将不胜感激......

【问题讨论】:

    标签: neo4j spring-data-neo4


    【解决方案1】:

    你使用的那些空字符串真的很奇怪。我认为空的关系类型不起作用。

    默认方向是OUTGOING,如果你想同时看到你必须在注解中指定direction=BOTH

    在您的存储库示例中,您需要使用投影或@QueryResult 来查看type(r) AS type 列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多