2012-12-10 83 views
2

我查詢用下面的Cypher支架河畔一個Neo4j的服務器正常工作:UnsupportedOperationException異常而在Java執行的Cypher查詢到的Neo4j服務器

GraphDatabaseService neo4j = new RestGraphDatabase("http://my.ip:7474/db/data"); 
ExecutionEngine engine = new ExecutionEngine(
String myCypher = "START n = node(1234) RETURN n LIMIT 10;" 
ExecutionResult result = engine.execute(myCypher); 
System.out.println(result); 

如果我更改查詢的第一行START n = node(*) RETURN n LIMIT 10;我得到這個醜陋異常當我嘗試打印結果:線程 「main」 java.lang.UnsupportedOperationException 在org.neo4j.rest.graphdb.AbstractRemoteDatabase.getNodeManager

異常(AbstractRemoteD atabase.java:144) 在org.neo4j.rest.graphdb.RestGraphDatabase.getNodeManager(RestGraphDatabase.java:33) 在org.neo4j.tooling.GlobalGraphOperations。(GlobalGraphOperations.java:39) 在org.neo4j.tooling .GlobalGraphOperations.at(GlobalGraphOperations.java:51) at org.neo4j.cypher.internal.executionplan.builders.GraphGlobalStartBuilder $$ anonfun $ createStartPipe $ 1.apply(GraphGlobalStartBuilder.scala:51) at org.neo4j.cypher.internal .executionplan.builders.GraphGlobalStartBuilder $$ anonfun $ createStartPipe $ 1.apply(GraphGlobalStartBuilder.scala:51) at org.neo4j.cypher.internal.pipes.StartPipe $$ anonfun $ 1.apply(StartPipe.scala:38) at org .neo4j.cypher.internal.pipes.StartPipe $$ anonfun $ 1.apply(StartPipe.scala:37) at scala.collection.Traversabl eLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:200) at scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:200) at scala.collection.LinearSeqOptimized $ class.foreach( LinearSeqOptimized.scala:59) at scala.collection.immutable.List.foreach(List.scala:45) at scala.collection.TraversableLike $ class.flatMap(TraversableLike.scala:200) at scala.collection.immutable。 List.flatMap(List.scala:45) at org.neo4j.cypher.internal.pipes.StartPipe.createResults(StartPipe.scala:37) at org.neo4j.cypher.internal.pipes.MatchPipe.createResults(MatchPipe。 scala:31) at org.neo4j.cypher.internal.pipes.NamedPathPipe.createResults(NamedPathPipe.scala:26) at org.neo4j.cypher.internal.pipes.Fi lterPipe.createResults(FilterPipe.scala:28) at org.neo4j.cypher.internal.pipes.ExtractPipe.createResults(ExtractPipe.scala:37) at org.neo4j.cypher.internal.pipes.EagerAggregationPipe.createResults(EagerAggregationPipe。階:49) 在org.neo4j.cypher.internal.pipes.ExtractPipe.createResults(ExtractPipe.scala:37) 在org.neo4j.cypher.internal.pipes.ColumnFilterPipe.createResults(ColumnFilterPipe.scala:39) 在org.neo4j.cypher.internal.pipes.EagerAggregationPipe.createResults(EagerAggregationPipe.scala:49) at org.neo4j.cypher.internal.pipes.ExtractPipe.createResults(ExtractPipe.scala:37) at org.neo4j.cypher。 internal.pipes.ColumnFilterPipe.createResults(ColumnFilterPipe.scala:39) at org.neo4j.cypher.internal.executionplan.ExecutionPla nImpl $$ anonfun $ 4 $$ anonfun $ apply $ 2.apply(ExecutionPlanImpl.scala:95) at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl $$ anonfun $ 4 $$ anonfun $ apply $ 2.apply(ExecutionPlanImpl.scala: 95) 在org.neo4j.cypher.PipeExecutionResult.immutableResult(PipeExecutionResult.scala:37) 在org.neo4j.cypher.PipeExecutionResult.iterator(PipeExecutionResult.scala:153) 在org.neo4j.cypher.PipeExecutionResult.hasNext( PipeExecutionResult.scala:155) at scala.collection.Iterator $$ anon $ 19.hasNext(Iterator.scala:334) at scala.collection.Iterator $$ anon $ 19.hasNext(Iterator.scala:334) at scala。 collection.Iterator $ class.toString(Iterator.scala:1030) at scala.collection.Iterator $$ anon $ 19.toString(Iterator。斯卡拉:333) 在java.lang.String.valueOf(String.java:2826) 在scala.collection.mutable.StringBuilder.append(StringBuilder.scala:185) 在scala.collection.TraversableOnce $$ anonfun $ addString $ 1.apply(TraversableOnce.scala:287) at scala.collection.Iterator $ class.foreach(Iterator.scala:660) at scala.Product $$ anon $ 1.foreach(Product.scala:38) at scala。在scala.Product $$ anon $ 1.addString(Product.scala:38) at scala.collection.TraversableOnce $ class.mkString(TraversableOnce.scala:263) (scalaRunTime.scala:175) 在scala.collection.JavaConversions $ IteratorWrapper.toString(JavaConversions.scala:561) 在java.lang.String.valueOf(String.java:2826) 在java.io.PrintStream.println(PrintStream.java:771)

此外,諸如System.out.println(result.columns())之類的東西可以正常工作,我可以從控制檯完美地執行所有操作......發生了什麼事?

編輯:

查詢似乎太快了回報,有什麼,我應該做的「以使Java等待」一個完整的迴應?

+0

似乎是奇怪。如果您在純密碼控制檯中執行查詢(例如,通過weadmin),您會得到什麼?從控制檯的 – ulkas

+0

它工作正常,我得到10個節點回來 – Gevorg

回答

2

不要那樣做!

改爲使用new RestCypherQueryEngine(restGraphDb.getRestAPI()),否則所有查詢都在客戶端上運行,並且每個數據庫訪問都會通過網絡進行。

並確保在查詢中使用參數。

用途:

QueryResult<Map<String, Object>> query(String statement, Map<String, Object> params)