Orient Db中的继承模型

时间:2016-08-04 06:37:53

标签: java inheritance orientdb

我有一个场景,我有一个图形,并希望创建一个继承到顶点。

使用已经指定的类:具有特定属性的Person节点(超类),我正在创建子类并将新属性分配给指定为under的子类(这里Mysubclass是person的子类)

OrientGraph graph = new OrientGraph(“remote:/ localhost / newhilti”,“root”,“varun”);         graph.createVertexType(“Mysubclass”,“Person”);

    Vertex vPerson = graph.addVertex("class:Mysubclass");
    vPerson.setProperty("firstName", "John");
    vPerson.setProperty("lastName", "Smith");
    graph.commit();

现在,当我尝试获取Mysubclass的属性时,它没有给我超类的属性,即。人

我是否可以澄清一下这里是否有任何遗漏,或者这是正常的行为,如果我们使用继承,我认为这种情况不是这样。

谢谢 -

Varun Tahin

2 个答案:

答案 0 :(得分:6)

正如Michela在示例中所写,您应该在新顶点vPerson中为继承属性添加至少一个值,以查看vPerson中select的结果集中的列;子类Mysubclass具有所有父属性以及他自己的属性,但是当该属性的所有值都为null时,您将看不到结果集中的属性值。所以这是一种正常行为

答案 1 :(得分:2)

试试这个:

 Vertex vPerson = graph.addVertex("class:Mysubclass");
    vPerson.setProperty("firstName", "John");
    vPerson.setProperty("lastName", "Smith");
    vPerson.setProperty("<Person property>", "<value>");
    vPerson.setProperty("<Person property>", "<value>");
    graph.commit();

希望它有所帮助。

此致

相关问题