如何在 Orientdb 中获取顶点并创建边
How can I get vertex and create edge in Orientdb
我已经在两个不同的 class 中创建了两个顶点,我正在尝试在另一个 class 中创建边。我该怎么做?
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);
}
我怎样才能在另一个class中的上述两个顶点之间创建边class任何人都可以帮助我
我用你的代码试过你的情况,下面是我的例子。
这些是我建议您遵循的主要步骤:
- 创建 类 和属性;
- 插入数据;
- 创建顶点之间的边。
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();
}
}
}
工作室输出:
已编辑
嗨@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]
工作室:
希望对您有所帮助
我已经在两个不同的 class 中创建了两个顶点,我正在尝试在另一个 class 中创建边。我该怎么做?
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);
}
我怎样才能在另一个class中的上述两个顶点之间创建边class任何人都可以帮助我
我用你的代码试过你的情况,下面是我的例子。
这些是我建议您遵循的主要步骤:
- 创建 类 和属性;
- 插入数据;
- 创建顶点之间的边。
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();
}
}
}
工作室输出:
已编辑
嗨@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]
工作室:
希望对您有所帮助