gpt4 book ai didi

java - 在事务中使用 QueryEngine 时出现异常

转载 作者:行者123 更新时间:2023-12-01 04:57:05 25 4
gpt4 key购买 nike

我正在使用带有 java-rest-binding 1.8.M07 的 neo4j 1.9.M01 版本,并且我对这段代码有一个问题,该代码旨在从 neo4j 数据库中获取具有属性“URL”的节点,即“ARREL”,通过休息使用查询语言。这些问题似乎只发生在事务内部,引发异常,但在其他方面工作良好:

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

但是发生了异常:*Exception tx0: Error Reading as 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 对象时失败。

问题是我需要使用事务来优化查询,因为如果不是的话,处理我需要执行的所有查询会花费太多时间。我是否应该尝试将多个操作加入到查询中以避免使用事务?

最佳答案

尝试在以下位置添加单引号:

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

关于java - 在事务中使用 QueryEngine 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com