我在两个不同的类中创建了两个顶点,我试图在另一个类中创建Edge。我怎么能这样做?
class m1{
OrientGraph graph=factory.getTx();
OrientVertexType v=graph.createVertexType("Delears");
v.createProperty("ID", OType.INTEGER);
v.createProperty("Name",OType.STRING);
v.createProperty("Address", OType.STRING);
}
class m2{
OrientVertexType v1=graph.createVertexType("SuperMarket");
v1.createProperty("Item", OType.STRING);
v1.createProperty("Code", OType.DOUBLE);
v1.createProperty("Quantity", OType.INTEGER);
}
如何在另一个类中创建上述两个顶点之间的边缘,任何一个帮助我
答案 0 :(得分:0)
我用你的代码尝试了你的案例,然后是我的例子。
这些是我建议您遵循的主要步骤:
JAVA代码:
import java.io.IOException;
import com.orientechnologies.orient.client.remote.OServerAdmin;
import com.orientechnologies.orient.core.metadata.schema.OType;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
import com.tinkerpop.blueprints.impls.orient.OrientEdgeType;
import com.tinkerpop.blueprints.impls.orient.OrientGraph;
import com.tinkerpop.blueprints.impls.orient.OrientVertex;
import com.tinkerpop.blueprints.impls.orient.OrientVertexType;
public class Stack37046827 {
private static String remote = "remote:localhost/";
public static void main(String[] args) {
try {
String DBname = "Stack37046827";
String currentPath = remote + DBname;
OServerAdmin serverAdmin = new OServerAdmin(currentPath).connect("root", "root");
OrientGraph g = new OrientGraph(currentPath);
// OrientVertexType used to create classes
OrientVertexType v = g.createVertexType("Delears");
v.createProperty("ID", OType.INTEGER);
v.createProperty("Name", OType.STRING);
v.createProperty("Address", OType.STRING);
OrientVertexType v1 = g.createVertexType("SuperMarket");
v1.createProperty("Item", OType.STRING);
v1.createProperty("Code", OType.DOUBLE);
v1.createProperty("Quantity", OType.INTEGER);
OrientEdgeType e = g.createEdgeType("myEdge", "E");
// Once classes and properties are created, you can populate the DB
// OrientVertex used to create the vertexes
OrientVertex delears = g.addVertex("class:Delears");
delears.setProperties("ID", "1");
delears.setProperties("Name", "name1");
delears.setProperties("Address", "address1");
OrientVertex superMarket = g.addVertex("class:SuperMarket");
superMarket.setProperties("Item", "item1");
superMarket.setProperties("Code", "2");
superMarket.setProperties("Quantity", "5");
// OrientEdge to create the edge between vertexes
OrientEdge e1 = g.addEdge(null, delears, superMarket, "myEdge");
g.shutdown();
serverAdmin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
STUDIO OUTPUT:
<强> EDITED 强>
嗨@eswara,请考虑这个结构:
现在您可以检索您正在寻找的顶点并在它们之间创建边缘
JAVA代码:
import java.io.IOException;
import com.orientechnologies.orient.client.remote.OServerAdmin;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
import com.tinkerpop.blueprints.impls.orient.OrientGraph;
import com.tinkerpop.blueprints.impls.orient.OrientGraphFactory;
public class Stack37046827 {
private static String remote = "remote:localhost/";
public static void main(String[] args) {
try {
String DBname = "Stack37046827";
String currentPath = remote + DBname;
OServerAdmin serverAdmin = new OServerAdmin(currentPath).connect("root", "root");
OrientGraphFactory factory = new OrientGraphFactory(currentPath);
OrientGraph g = factory.getTx();
Iterable<Vertex> delears = g.getVerticesOfClass("Delears");
Iterable<Vertex> sMarkets = g.getVerticesOfClass("SuperMarket");
for (Vertex delear : delears) {
for (Vertex sMarket : sMarkets) {
if (delear.getProperty("Name").equals("name0") && sMarket.getProperty("Item").equals("item0")) {
OrientEdge e1 = g.addEdge(null, delear, sMarket, "myEdge");
g.commit();
System.out.println(e1);
}
}
}
g.shutdown();
serverAdmin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
<强>输出:强>
e[#14:0][#12:0-myEdge->#13:0]
<强> STUDIO:强>
希望有所帮助