我在两个不同的类中创建了两个顶点,我试图在另一个类中创建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); }如何在另一个类中创建上述两个顶点之间的任何一个帮助我
I have created two vertexes in two different class, and I am trying to create Edge in another class. How can I do this?
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); }how can I create edge between the above two vertex in another class any one help me
最满意答案
我用你的代码尝试了你的情况,然后是我的例子。
这些是我建议您遵循的主要步骤:
创建类和属性; 插入数据; 在顶点之间创建边。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(); } } }工作室输出:
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]工作室:
希望能帮助到你
I tried your case with your code and following there's my example.
These are the main steps I advise you to follow:
Create classes and properties; Insert the data; Create the edges between the vertexes.JAVA CODE:
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
Hi @eswara, consider this structure:
Now you can retrieve the vertices you're looking for and create an edge between them
JAVA CODE:
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(); } } }Output:
e[#14:0][#12:0-myEdge->#13:0]STUDIO:
Hope it helps
更多推荐
发布评论