0

スケールが埋め込まれたNeo4j 1.9を使用しています。このコードを実行すると、行 5 にエラーが発生し、次のメッセージが表示されます: java.lang.ClassCastException: scala.collection.immutable.Stream$Cons cannot be cast to org.neo4j.graphdb.Node

これは私のコードです:

 val _shortestPathQuery= """
    START n=node:node_auto_index(tag="body"),m=node:node_auto_index(tag="#text")
    MATCH p=shortestPath( n-[r:FATHER*..]-m )
    WHERE m.text =~ '.*%s.*'
    RETURN NODES(p) as pathnodes;
    """.stripMargin.format(toSearch)

    val tx = graphDb.beginTx()
    val result = engine.execute( _shortestPathQuery )

    val decPath:Iterator[org.neo4j.graphdb.Node]  = result.columnAs("pathnodes")

    for ( node:org.neo4j.graphdb.Node <- decPath)
    {
       println(node + ": " + node.getProperty("nodeid") + " " + node.getId)
    }

多くの Java コードを見つけましたが、Scala で変換できません。

結果を印刷すると: println(result.dumpToString()) 正しい行が表示されます。

どうもありがとうございました

4

1 に答える 1

0

Iterableノードのを含む列を返します。

したがって、おそらく次を使用します。

val _shortestPathQuery= """
    START n=node:node_auto_index(tag="body"),m=node:node_auto_index(tag="#text")
    MATCH p=shortestPath( n-[r:FATHER*..]-m )
    WHERE m.text =~ '.*%s.*'
    RETURN NODES(p) as pathnodes;
    """.stripMargin.format(toSearch)

    val tx = graphDb.beginTx()
    val result = engine.execute( _shortestPathQuery )

    val decPath:Iterator[Iterator[org.neo4j.graphdb.Node]]  = result.columnAs("pathnodes")

    for ( node:org.neo4j.graphdb.Node <- nodes <- decPath )
    {
       println(node + ": " + node.getProperty("nodeid") + " " + node.getId)
    }
于 2013-11-10T06:12:52.707 に答える