旧版 Titan DB(版本0.5.2) TitanVertex 和 TitanEdge 实施 TitanElement 界面我用来检索元素属性值的方法.move {
border:1px solid #000000;
padding: 10px;
transition: transform .2s ease;
/*
have noticed issue is in "transition"
*/
}
.button.hover {
color: red;
}
.angle {
transform: translate(100px, 0);
}
。在新版本的Titan中删除了此方法(我使用的是1.0.0版)。我发现<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="move">
<button class="button">on click still red?</button>
</div>
代替这种方法做了同样的事情,但接收 PropertyKey 作为参数,而不是 String 作为键名。
仅使用属性键名作为String对象检索属性值/值的最佳方法是什么?
或者是否有简单的方法将PropertyKey对象从属性键名称作为String获取?
答案 0 :(得分:2)
Titan 1.0基于TinkerPop 3.在Titan 1.0中,您会发现之前在Titan 0.5中调用的一些方法在TinkerPop接口中定义,而不是在Titan接口中定义。
查看com.thinkaurelius.titan.core.TitanVertex
的Javadoc,您可以看到它扩展了org.apache.tinkerpop.gremlin.structure.Vertex
http://thinkaurelius.github.io/titan/javadoc/1.0.0/com/thinkaurelius/titan/core/TitanVertex.html
您可以在VertexProperty property(String key)
http://tinkerpop.incubator.apache.org/javadocs/3.0.1-incubating/full/org/apache/tinkerpop/gremlin/structure/Vertex.html#property-java.lang.String-
org.apache.tinkerpop.gremlin.structure.Vertex
使用属性键检索顶点属性值的最佳方法如下:
gremlin> graph = TitanFactory.build().set('storage.backend','inmemory').open()
==>standardtitangraph[inmemory:[127.0.0.1]]
gremlin> g = graph.traversal()
==>graphtraversalsource[standardtitangraph[inmemory:[127.0.0.1]], standard]
gremlin> v = graph.addVertex('name', 'octopus')
==>v[4296]
gremlin> v.values('name')
==>octopus
您可以在此处了解有关TinkerPop3文档中顶点属性的更多信息http://tinkerpop.incubator.apache.org/docs/3.0.1-incubating/#vertex-properties
答案 1 :(得分:0)
我花了一些时间,找到了一些简单的问题解决方案(根据Jason Plurad的最新答案)。
查看com.thinkaurelius.titan.core.TitanElement
的Javadoc,方法valueOrNull(PropertyKey key)
接收属性键对象。获取此对象的最简单方法是使用getPropertyKey(String keyName)
com.thinkaurelius.titan.core.TitanTransaction
方法返回属性键(如果它存在于Titan架构中)。 http://thinkaurelius.github.io/titan/javadoc/1.0.0/com/thinkaurelius/titan/core/TitanTransaction.html
Java代码示例:
TitanTransaction tt = TitanGraph.newTransaction();
PropertyKey userNameKey = tt.getPropertyKey("userName");
TitanVertex v = tt.getVertex(someUserVertexId);
String userName = v.valueOrNull(userNameKey);
答案 2 :(得分:0)
你可以这样做
var = edge.inVertex().property("property").value();