Ich werde den gesamten Wert der Listeneigenschaft aktualisieren und einen neuen Wert dafür in Titan 1.0 setzen, für einzelne Kardinalität kann ich vertex.property("single_property",new_value)
verwenden und das Ganze überschreiben Wert, aber für die Kardinalität vom Typ Liste wird der neue Wert zur Eigenschaft hinzugefügt (es überschreibt nicht den ganzen Wert). Außerdem, wenn ich die Eigenschaft entferne und einen neuen Wert hinzufüge, scheint es in der gleichen Transaktion, dass die gesamte Operation von Titan ignoriert wird! Daher meine Frage wäre, wie kann ich den gesamten Wert der Liste Eigenschaft in angemessener Weise aktualisieren?Aktualisierung des gesamten Wertes der Vertex-Eigenschaft mit List-Kardinalität in der Titeldatenbank-Datenbank
In Bezug auf die von Phani zur Verfügung gestellte Lösung funktionierte der folgende Code nicht für mich, der Einfügeteil funktionierte, aber der Löschteil nicht.
keywords = keywordExtractor.getKeywords(getId(nextVertex))
if (keywords.size() > 0) {
nextVertex.property(VertexProperty.Cardinality.single, "post_keyword", keywords.get(0));
keywords.remove(0);
for (String keyword : keywords) {
nextVertex.property(VertexProperty.Cardinality.list, "post_keyword", keyword);
}
}
nextVertex.graph().tx().commit();
Auch die von Jason angebotene Lösung, die im Folgenden bereitgestellt wird, hat auch nicht funktioniert. Das Problem war im Löschteil.
keywords = keywordExtractor.getKeywords(getId(nextVertex))
if (keywords.size() > 0) {
nextVertex.graph().traversal().V(nextVertex).properties("post_keyword").drop().iterate();
for (String keyword : keywords) {
nextVertex.property("post_keyword", keyword);
}
}
nextVertex.graph().tx().commit();
Ich habe auch die folgende Lösung untersucht; hat auch nicht funktioniert.
keywords = keywordExtractor.getKeywords(getId(nextVertex))
if (keywords.size() > 0) {
Iterator<VertexProperty<Object>> iter = nextVertex.properties("post_keyword");
while(iter.hasNext()){
iter.next().remove();
}
for (String keyword : keywords) {
nextVertex.property("post_keyword", keyword);
}
}
nextVertex.graph().tx().commit();
Leider hat Ihre Lösung nicht für mich funktioniert. –