2012-12-18 4 views
1

java-rest-binding 1.8.M07과 함께 neo4j 1.9.M01 버전을 사용하고 있으며이 코드와 관련된 neo4j 데이터베이스에서 노드를 가져 오는 데 문제가 있습니다. 나머지를 통해 쿼리 언어를 사용하여 "ARREL"인 "URL"속성.트랜잭션 내에서 QueryEngine을 사용하여 예외가 발생했습니다.

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 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)) 
(...) 

을 그러나 그것은 또한 예외를 throw null 객체를 반환하는 * n_column.next() *에 실패

는 또한 (트랜잭션 사이)에 ExecutionEngine와 함께 할 것을 시도했다.

문제는 내가해야 할 모든 쿼리를 처리하는 데 너무 많은 시간이 걸리지 않으면 쿼리를 최적화하기 위해 트랜잭션을 사용해야한다는 것입니다. 트랜잭션을 사용하지 않으려면 몇 가지 연산을 쿼리에 결합해야합니까?

답변

0

은 작은 따옴표를 추가하려고 :

START n=node(*) WHERE n.URL =~ '{URL}' RETURN n 
+0

답변 주셔서 감사합니다. 예외는 계속 유지됩니다. – p3r1

0

를 업데이트 할 수 있습니다 자바 받침대 결합 최신 버전 (1.8)에? 그 사이에 우리는 REST- 배치 연산을 트랜잭션 의미론을 가진 장소에 자동으로 적용하는 버전을 가지고있었습니다. 당신이 볼

그래서 트랜잭션은 트랜잭션 내에서 쿼리를 실행,하지만 텍사스 후 결과를 에 액세스 진짜 거래하지만 당신의 작업을 기록하는 tx.success/finish

에 배치 나머지-작업으로 실행되도록 은 끝났어. 그러면 결과가 나타납니다.

예를 들어 한 번에 많은 사이퍼 쿼리를 서버로 보내고 그 결과를 모두 한 번에 사용할 수있게하는 것이 유용합니다. PARAMS를 사용하는 경우 SQL 명령문을 준비처럼

START n=node(*) WHERE n.URL =~ {URL} RETURN n 

params: { "URL" : "http://your.url" } 

없음 인용이 켜지지 않습니다 :

는 그리고 네 @ulkas 그런 매개 변수는 아니지만을 사용합니다.

+0

자, 해결책을 찾으려고 노력할 것입니다. 답변을 주셔서 감사합니다. – p3r1

관련 문제