2

我正在尝试获取两个顶点之间的边缘属性值并低于异常

java.lang.ClassCastException:java.lang.String 不能转换为 scala.runtime.Nothing$

环境:Titan InMemory

代码 :

val age = Key[Int]("age")

 A ---("knows",age -> 10) --> B

小鬼查询:

graph.traversal().V().has("ID", "A").bothE("knows").as("x").otherV()
      .has("ID", "B").select("x").properties("age").headOption().get

输出:p[年龄->10]

graph.traversal().V().has("ID", "A").bothE("knows").as("x").otherV()
          .has("ID", "B").select("x").label().head()

输出:知道

graph.traversal().V().has("ID", "A").bothE("knows").as("x").otherV()
      .has("ID", "B").select("x").values("age").head()

输出:

java.lang.ClassCastException:java.lang.String 不能转换为 scala.runtime.Nothing$

当我尝试获取属性值时有任何想法,我收到此错误

同样适用于 gremlin 控制台 http://gremlinbin.com/bin/view/58044fa931772

4

1 回答 1

0

不确定这是正确的解决方案。这解决了我的问题。

我正在将整数值插入边缘属性

前: mgmt.makePropertyKey("age").dataType(classOf[String]).cardinality(Cardinality.SET).make()

后 :

mgmt.makePropertyKey("age").dataType(classOf[Integer]).cardinality(Cardinality.SET).make()

更改后,出现以下错误

java.lang.ClassCastException:java.lang.Integer 不能转换为 scala.runtime.Nothing$

前 :

val age_value = graph.traversal().V().has("ID", "A").bothE("knows").as("x").otherV()
      .has("ID", "B").select("x").values("age").head()

后 :

val age_value:Integer = graph.traversal().V().has("ID", "A").bothE("knows").as("x").otherV()
      .has("ID", "B").select("x").values("age").head()
于 2016-10-18T10:59:28.727 回答