【问题标题】:Tinkerpop Frames: Get Edge when adding a vertexTinkerpop Frames:添加顶点时获取边缘
【发布时间】:2015-08-13 15:33:28
【问题描述】:

我按照https://github.com/tinkerpop/frames/wiki/Getting-Started 上的示例进行以下操作:例如,添加新项目时

marko.addCreatedProject(pr);

例如,我还想获得 marko 和 pr 之间的边缘来设置权重。一种方法是获取 marko 的所有传出顶点并在顶点列表中找到 pr。有一个更好的方法吗?当我调用 addCreatedProject 时,是否可以返回边缘来执行以下操作:

CreatededInfo cr = marko.addCreatedProject(pr);
cr.setWeight(3);

【问题讨论】:

    标签: orientdb frames vertex tinkerpop edges


    【解决方案1】:

    您可以尝试在 FramedGraph 上使用 addEdge 方法,当您提供两个要关联的顶点时,该方法会返回 Edge。所以粒度更细一些。

    例如

    com.tinkerpop.frames.FramedGraphFactory.FramedTransactionalGraph graph = ...
    Vertex user1 = graph.addVertex(null);
    Vertex project1 = graph.addVertex(null);
    Edge newEdge = graph.addEdge(null, user1, project1, "CREATED");
    // ... do something with newEdge
    

    tinkerpop FramedGraph 接口还具有 addVertex 和 addEdge 的重载方法,因此您可以提供您的 framed Class 类型,以方便地返回 Framed 顶点或边。

    例如

    Vertex user1 = graph.addVertex(null, Person.class);
    Vertex project1 = graph.addVertex(null, Project.class);
    Edge newEdge = graph.addEdge(null, user1, project1, "CREATED",Direction.OUT, MyEdge.class);
    

    当然你也可以在事后graph.frame(newEdge, MyEdge.class),如果你只有一个com.tinkerpop.blueprints.Edge

    Here is the Javadoc for FramedGraph

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2017-07-16
      • 2021-04-20
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多