0
我在orientDB中有几个节点,我想在它们之间的边上有约束。例如,我有一个节点类型主和一个类型奴隶,我想只有主和奴隶之间,而不是奴隶之间的边缘。OrientDB在java代码边缘创建约束
我想在master和slave之间的relationshiop上使用一个约束。这可能使用约束?
编辑:我试图这样做,但它不工作,我仍然可以添加一个指向主人的奴隶。如何在使用图形数据库时访问模式?
OrientGraph graph = new OrientGraph("remote:localhost/test");
if (graph.getEdgeType("Ref") == null) {
graph.createEdgeType("Ref");
}
if (graph.getVertexType("Element") == null) {
graph.createVertexType("Element");
}
if (graph.getVertexType("SubElement") == null) {
OrientVertexType subElementVertex = graph
.createVertexType("SubElement");
OrientVertexType elementVertex = graph.getVertexType("Element");
subElementVertex
.createProperty("parent", OType.LINK, elementVertex)
.isMandatory();
}
我用它来创建我的顶点和边:
Vertex page3 = graph.addVertex("class:Element");
Vertex doc1 = graph.addVertex("class:SubElement");
page3.setProperty("type", "page");
doc1.setProperty("type", "document");
Edge edge6 = graph.addEdge("class:Ref", page3, doc1, "Ref");
edge6.setProperty("properties", mapEdge);
edge6.setProperty("type", "document");
Edge edge7 = graph.addEdge("class:Ref", doc1, page3, "Ref");
而这最后一个不应该工作,如果约束是正确的。
感谢,但请看到我的编辑 – Blue
我似乎无法做到这一点orientdb>创建边缘旗下拥有(从Person中选择)到(从Car中选择)。我是否必须使用OCommandSQL创建类似这样的属性? – Blue
您发布的示例已经是模式的编辑。要添加节点,您必须使用graph.addVertex(null)而不是graph.createEdgeType – onof