当使用节点(*)副节点(1,2,3 ...)时,Java Neo4j Cypher查询导致unsupportedException

时间:2013-02-18 02:35:00

标签: java neo4j cypher

给出以下代码:

public class Foo
{

     public void go(String relationship)
     {
             RestGraphDatabase rest = new RestGraphDatabase(
            prop.getProperty("address"), prop.getProperty("username"),
            prop.getProperty("password"));
             ExecutionEngine engine = new ExecutionEngine(rest,
            StringLogger.SYSTEM);
             ExecutionResult result = engine
                .execute("start n=node(7,8,9)  match(n)-[" + relationship
                        + "]->(x) return n,x,caution");    
                    scala.collection.Iterator<Node> nodes = result.columnAs("n");                
     }
}

以上工作原理允许我迭代我的专栏:

public class Foo
{

     public void go(String relationship)
     {
             RestGraphDatabase rest = new RestGraphDatabase(
            prop.getProperty("address"), prop.getProperty("username"),
            prop.getProperty("password"));
             ExecutionEngine engine = new ExecutionEngine(rest,
            StringLogger.SYSTEM);
             ExecutionResult result = engine
                .execute("start n=node(*)  match(n)-[" + relationship
                        + "]->(x) return n,x,caution");    
                    scala.collection.Iterator<Node> nodes = result.columnAs("n");                
     }
}

迭代器中的结果抛出了一个不受支持的异常。列出值的node(*)不是语法糖吗?如果不是,我怎么能node(*)并迭代它呢?

堆栈:

  

2013-02-18 03:13:22.227 + 0000 INFO [org.neo4j]:start n = node(*)   match(n) - [警告] - &gt;(x)返回n,x,警告列表(n,x,警告)

     

线程“main”中的异常java.lang.UnsupportedOperationException at   org.neo4j.rest.graphdb.AbstractRemoteDatabase.getNodeManager(AbstractRemoteDatabase.java:136)     在   org.neo4j.rest.graphdb.RestGraphDatabase.getNodeManager(RestGraphDatabase.java:33)     在   org.neo4j.tooling.GlobalGraphOperations。(GlobalGraphOperations.java:39)     在   org.neo4j.tooling.GlobalGraphOperations.at(GlobalGraphOperations.java:51)     在   org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder $$ anonfun $ createStartPipe $ 1.适用(GraphGlobalStartBuilder.scala:51)     在   org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder $$ anonfun $ createStartPipe $ 1.适用(GraphGlobalStartBuilder.scala:51)     在   org.neo4j.cypher.internal.pipes.StartPipe $$ anonfun $ createResults $ 1.适用(StartPipe.scala:36)     在   org.neo4j.cypher.internal.pipes.StartPipe $$ anonfun $ createResults $ 1.适用(StartPipe.scala:35)     在scala.collection.Iterator $$ anon $ 13.hasNext(Iterator.scala:371)at at   scala.collection.Iterator $$ anon $ 13.hasNext(Iterator.scala:371)at   scala.collection.Iterator $$ anon $ 11.hasNext(Iterator.scala:327)at   scala.collection.Iterator $$ anon $ 11.hasNext(Iterator.scala:327)at   org.neo4j.cypher.internal.ClosingIterator $$ anonfun $ hasNext $ 1.适用$ MCZ $ SP(ClosingIterator.scala:36)     在   org.neo4j.cypher.internal.ClosingIterator $$ anonfun $ hasNext $ 1.适用(ClosingIterator.scala:35)     在   org.neo4j.cypher.internal.ClosingIterator $$ anonfun $ hasNext $ 1.适用(ClosingIterator.scala:35)     在   org.neo4j.cypher.internal.ClosingIterator.failIfThrows(ClosingIterator.scala:87)     在   org.neo4j.cypher.internal.ClosingIterator.hasNext(ClosingIterator.scala:35)     在   org.neo4j.cypher.PipeExecutionResult.hasNext(PipeExecutionResult.scala:139)     在scala.collection.Iterator $$ anon $ 11.hasNext(Iterator.scala:327)at   scala.collection.Iterator $ class.isEmpty(Iterator.scala:256)at   scala.collection.AbstractIterator.isEmpty(Iterator.scala:1156)

2 个答案:

答案 0 :(得分:0)

使用RestCypherQueryEngine,请参阅this stackoverflow post。如果您查看来源,似乎有很多不受支持:AbstractRemoteDatabase。 ; - )

答案 1 :(得分:0)

此查询的目标是什么?这会返回整个图表吗?

如果您想对数据执行某些操作,请在服务器端执行 查询,而不是通过网络提取数据。

您的查询中也没有名为caution的标识符。

start n=node(*)  
match(n)-[" + relationship + "]->(x) 
return n,x,caution