2016-08-04 30 views
0

我有一個場景,我有一個圖並想要創建一個到頂點的繼承。東方Db中的繼承模型

與已指定類:具有特殊性能,我創建了子類和分配在指定爲新的屬性的子類人節點(超類)(以下Mysubclass是人的子類)

OrientGraph圖=新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的屬性時,它沒有給我它的超類的屬性,即。人。

如果我們在使用繼承,我可否請我澄清一下,如果在這裏缺少任何東西,或者它是正常行爲,我認爲這是不正確的行爲。

Thanks-

Varun的Tahin

回答

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(); 

希望它能幫助。

問候

+0

我認爲上面不是一個合適的解決方案,因爲如果未指定,子應該包含父項的屬性鍵和值爲空。 如果我的理解是正確的,那麼明確地爲孩子們提供它將會擊敗繼承的目的。 謝謝 - Varun Tahin –

6

由於MICHELA樣品中寫道,你應該在新的頂點vPerson爲繼承的屬性添加至少一個數值,看到的結果從vPerson集選擇的列;子類Mysubclass具有所有父屬性以及他自己的屬性,但當該屬性的所有值都爲null時,您將不會在結果集中看到屬性值。所以這是一個正常的行爲