Java OrientDB可以';不要用方向来获取边
我试图识别一条具有起始顶点和结束顶点的边 为此,我打电话:Java OrientDB可以';不要用方向来获取边,java,graph,orientdb,Java,Graph,Orientdb,我试图识别一条具有起始顶点和结束顶点的边 为此,我打电话: vertexStart.getEdges(Direction.OUT, relationshipId) 它似乎总是空的 获取传入的边似乎是可行的,但我两者都需要 vertexStart.getEdges(Direction.IN, relationshipId) relationshipId是边的标签 Iterable<Vertex> startNodes = this.getVertexList(storage.get
vertexStart.getEdges(Direction.OUT, relationshipId)
它似乎总是空的
获取传入的边似乎是可行的,但我两者都需要
vertexStart.getEdges(Direction.IN, relationshipId)
relationshipId是边的标签
Iterable<Vertex> startNodes = this.getVertexList(storage.getStartNode(), graph);
Iterable<Vertex> endNodes = this.getVertexList(storage.getEndNode(), graph);
for (Vertex startNode : startNodes)
{
for (Vertex endNode : endNodes)
{
String edgeClass = "class:" + storage.getId();
Edge edge = startNode.addEdge(edgeClass, endNode);
for (Map.Entry<String, Object> entry : storage.getProperties().entrySet())
{
edge.setProperty(entry.getKey(), entry.getValue());
}
edge.setProperty(Constants.TAG_HASH, HashCreator.sha1FromRelationship(storage));
edge.setProperty(Constants.TAG_SNAPSHOT_ID, snapshotId);
}
}
graph.commit();
Iterable startNodes=this.getVertexList(storage.getStartNode(),graph);
Iterable endNodes=this.getVertexList(storage.getEndNode(),graph);
用于(顶点起始节点:起始节点)
{
用于(顶点端点节点:端点节点)
{
字符串edgeClass=“class:”+storage.getId();
Edge Edge=startNode.addEdge(edgeClass,endNode);
对于(Map.Entry:storage.getProperties().entrySet())
{
setProperty(entry.getKey(),entry.getValue());
}
setProperty(Constants.TAG_HASH,HashCreator.sha1fromrationship(storage));
setProperty(Constants.TAG_SNAPSHOT_ID,snapshotId);
}
}
graph.commit();
用于创建结构。我试图重现您的问题,但在我的案例中效果良好。 我创建了这个图表 顶点#10:0有一条输入边和一条输出边 我用了这个密码
Vertex v = g.getVertex("#10:0");
System.out.println("OUT");
Iterable<Edge> itOut=v.getEdges(Direction.OUT, "E");
for(Edge e:itOut){
System.out.println(e.getId());
}
System.out.println("IN");
Iterable<Edge> itIn=v.getEdges(Direction.IN, "E");
for(Edge e:itIn){
System.out.println(e.getId());
}
Vertex v=g.getVertex(#10:0”);
System.out.println(“out”);
Iterable itOut=v.GetEdge(方向为“E”);
用于(边缘e:itOut){
System.out.println(e.getId());
}
系统输出打印项次(“输入”);
Iterable itIn=v.GetEdge(方向为“E”);
用于(边缘e:itIn){
System.out.println(e.getId());
}
我得到了
希望有帮助。您使用的orientdb版本是什么?编译组:'com.orientechnologies',名称:'orientdb graphdb',版本:'2.2.11'@Alessandrororota您知道吗?您确定顶点有凸出边吗?它们是否可能只有传入的边?按照上面的代码,应该不可能创建没有两个顶点的边。存储边的方式可能有问题吗?我将用代码更新主帖子。