java-rest-binding1.8.M07でneo4j1.9.M01バージョンを使用していますが、プロパティ「URL」が「ARREL」のneo4jデータベースからノードを取得することを目的としたこのコードに問題があります。 、restを介してクエリ言語を使用します。問題はトランザクション内でのみ発生し、例外をスローするようですが、それ以外の場合はうまく機能します:
RestGraphDatabase graphDb = new RestGraphDatabase("http://localhost:7474/db/data");
RestCypherQueryEngine queryEngine = new RestCypherQueryEngine(graphDb.getRestAPI());
Node nodearrel = null;
Transaction tx0 = gds.beginTx();
try{
final String queryStringarrel = ("START n=node(*) WHERE n.URL =~{URL} RETURN n");
QueryResult<Map<String, Object>> retornar = queryEngine.query(queryStringarrel, MapUtil.map("URL","ARREL"));
for (Map<String,Object> row : retornar)
{
nodearrel = (Node)row.get("n");
System.out.println("Arrel: "+nodearrel.getProperty("URL")+" id : "+nodearrel.getId());
}
tx0.success();
}
(...)
ただし、例外が発生します。*例外tx0:JSONとしての読み取りエラー''*QueryResultオブジェクトを返す行でのすべての実行。
また、ExecutionEngineを使用して(トランザクション間で)それを実行しようとしました。
ExecutionEngine engine = new ExecutionEngine( graphDb );
String ARREL = "ARREL";
ExecutionResult result = engine.execute("START n=node(*) WHERE n.URL =~{"+ARREL+"} RETURN n");
Iterator<Node> n_column = result.columnAs("n");
Node arrelat = (Node) n_column.next();
for ( Node node : IteratorUtil.asIterable( n_column ) )
(...)
ただし、* n_column.next()*で失敗し、例外をスローするnullオブジェクトが返されます。
問題は、必要なすべてのクエリの処理に時間がかかりすぎるため、トランザクションを使用してクエリを最適化する必要があることです。トランザクションの使用を避けるために、クエリにいくつかの操作を結合しようとする必要がありますか?